OpenEvent in C++ / CLI



  • Hallo Leute,

    ich habe ein Problem, und zwar soll ich eine Software die in MFC geschrieben ist auf C++ / CLI mit Windows Forms portieren.
    Und dabei habe ich ein Problem mit dem OpenEvent, welche Funktion aus dem CLI kann ich als ersatz zur alten WinAPI nehmen, oder wie rufe ich aus CLI Code "alten MFC" Code auf?

    Danke für eure Hilfe



  • "Alten" Code kannst Du in C++/CLI einfach verwenden... oder was ist Dein konkretes Problem?
    (wenn Du OpenEvent verwenden willst, musst Du natürlich noch "windows.h" einbinden)

    WinForms mit MFC ist hingegeben etwas komplexer... MFC mit WinForms geht aber; dazu gibt es extra neue Klassen in VS2005:
    http://blog.kalmbachnet.de/?postid=70



  • Problem ist, das ich Fehler von SDK Dateien bekomme wenn ich die windows.h einbinde

    #include <windows.h>
    
    ref class CAPISpyCommunication
    {
    public:
    	CAPISpyCommunication(void);
    	virtual ~CAPISpyCommunication(void);
    
    	bool	startCommunication();
    	bool	stopCommunication();
    
    private:
    	HANDLE	m_hStartEvent;
    	bool	m_bSetEvent;
    };
    

    Fehlermeldung:

    C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(7408) : error C2872: 'IDataObject' : ambiguous symbol
    could be 'C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(246) : System::Windows::Forms::IDataObject IDataObject'
    or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject'
    C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(7408) : error C3699: '' : cannot use this indirection on type 'IDataObject'
    compiler replacing '
    ' with '^' to continue parsing
    C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(7422) : error C2371: 'IDataObject' : redefinition; different basic types
    C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(246) : see declaration of 'IDataObject'
    C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(7583) : error C2872: 'IDataObject' : ambiguous symbol
    could be 'C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\include\objidl.h(7422) : IDataObject'
    or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject'

    Achja, dieses IDataObject verwende ich garnicht.

    Danke für die Hilfe



  • Habe rausgefunden warum es nicht geht, wenn ich die windows.h in meiner Header Datei einbinde bekomme ich die Fehler. Binde ich die windows.h in der CPP ein, dann gibt es keine Fehler. Um das HANDLE nun in die Header Datei zu bekommen habe ich einfach ein eigenes

    typedef void* HANDLE
    

    in der Headerdatei stehen.
    Jetzt scheint alles zu gehen.

    Trozdem danke für die Hilfe.


Anmelden zum Antworten