-> Hier kostenlos registrieren
Ein erster Test mit der Kommandoschnittstelle hat in VB ganz gut funktioniert, nur ist das Ding sehr langsam.
Also wollte ich testhalber mal mit VC++ (VisualStudio6) darauf zugreiffen, scheitere aber bereits am CoCreateInstance, welche GUID muss ich dem für das Interface ISimatic übergeben?
PS: Die beiden DLL's habe ich mittels Klassenassistent eingefügt, er hat mir dann je ein headerfile und ein cpp file pro dll erstellt, nur eben fehlen mir im Headerfile die Konstanten.
Leider ist die Konstande IID_ISimatic nicht in der Dll definiert und der Ausdruck __uuidof(ISimatic) funktioniert nicht.
Ich hätte zwar die GUID aus der dll ( 9A853ACE-BA8E-11D1-BAD8-0060086A411D), aber wie muss ich die korrekt übergeben
Also wollte ich testhalber mal mit VC++ (VisualStudio6) darauf zugreiffen, scheitere aber bereits am CoCreateInstance, welche GUID muss ich dem für das Interface ISimatic übergeben?
PS: Die beiden DLL's habe ich mittels Klassenassistent eingefügt, er hat mir dann je ein headerfile und ein cpp file pro dll erstellt, nur eben fehlen mir im Headerfile die Konstanten.
Code:
CLSID clsID;
HRESULT hr;
ISimatic* pIFace;
CoInitialize(NULL); // absolutely essential: initialize the COM subsystem
const IID IID_ISimatic = __uuidof(ISimatic); //--> Funktioniert nicht!!!
if (SUCCEEDED(hr = ::CLSIDFromProgID(L"Simatic.Simatic.1", &clsID))){
hr = CoCreateInstance(clsID, NULL, CLSCTX_INPROC_SERVER, IID_ISimatic, (void **)&pIFace); //--> Bei IID_ISimatic liegt das Problem...
}
CoUninitialize(); // cleanup COM after you're done using its services
Leider ist die Konstande IID_ISimatic nicht in der Dll definiert und der Ausdruck __uuidof(ISimatic) funktioniert nicht.
Ich hätte zwar die GUID aus der dll ( 9A853ACE-BA8E-11D1-BAD8-0060086A411D), aber wie muss ich die korrekt übergeben