AGGIORNAMENTO: Aggiunto cosa RoInitialize assomiglia a roapi.hCome dichiarare e link per RoInitialize, RoUninitialize, RoGetActivationFactory e hstring funzioni in Mingw Gcc
Io sono nel processo di scrittura di un C++ 11 biblioteca pura WinRT . Non uso WRL o C++/CX (ovviamente se voglio puro C++ 11).
Ho ottenuto il mio codice per compilare ed eseguire MSVC, ma voglio vedere se riesco a ottenere il codice per compilare ed eseguire su Mingw Gcc. In particolare sto usando Gcc 4.7.2 ottenuto da nuwen.net.
Che cosa ho bisogno a questo punto è un modo per chiamare le funzioni API di Windows RoInitialize RoUnitialize delle funzioni hstring WindowsCreateString, WindowsDuplicateString, WindowsDeleteString RoGetActivationFactory e.
Ho provato la compilazione di questo programma in G ++, ma ottenuto l'errore
extern "C"{
__declspec(dllimport)int __stdcall RoInitialize(int);
}
int main(){
RoInitialize(1);
}
ho provato a compilare, ma ha ottenuto
c:\Users\jrb\Desktop>g++ gccwinrt.cpp
C:\Users\jrb\AppData\Local\Temp\ccy7y1V9.o:gccwinrt.cpp:(.text+0x1e): undefined
reference to `[email protected]'
collect2.exe: error: ld returned 1 exit status
Se qualcuno mi può puntare nella giusta direzione su come dichiarare questi funzioni e quali librerie ho bisogno di collegare, lo apprezzerei. Anche se è necessario LoadLibrary/GetProcAddress sarei ancora ok con quello Aggiornamento
: Ecco cosa RoInitialize assomiglia nella roapi.h intestazione
ROAPI
_Check_return_
HRESULT
WINAPI
RoInitialize(
_In_ RO_INIT_TYPE initType
);
ROAPI is just a define for __declspec(dllimport)
_Check_return_ is part of SAL (Secure Annotations Language?)
HRESULT maps to int32
WINAPI is a define for __stdcall
RO_INIT_TYPE is an enumeration so int should cover it
Perdonami se qualcosa è cambiato, ma include solo l'intestazione e l'uso della funzione non è sufficiente? – chris
Cosa succede se includi Roapi.h? Come appare la dichiarazione in questa intestazione? –
Queste funzioni sono solo per Windows 8. Le intestazioni non sono disponibili in mingw gcc. Inoltre, anche se usassi le intestazioni da Visual C++, dovrei comunque collegarmi alla libreria di importazione corretta che Mingw gcc non ha per queste funzioni –