DLL in Visual C++ 2005 Express Edition



  • Hallo, vorweg muss ich sagen dass ich nicht unbedingt der Knüller in Sachen Programmieren mit Visual C++ 2005 bin. Meine Programmierkentnisse kommen eher aus dem bereich Elektronik (Mikrocontroller).
    Ich möchte nun ein Konsolenprogramm mit VC schreiben, welches über eine dll mit einem USB Gerät kommuniziert.

    Ich habe leider keine Ahnung wie ich die DLL in mein Programm einbinden kann, ich habe nur folgenden Code aus einer Beispielanwendung der dll für Borland C++

    HINSTANCE libHandle;
    HANDLE myOutPipe;
    HANDLE myInPipe;
    
    void LoadDLL(void)
    {
        libHandle = NULL;
        libHandle = LoadLibrary("mpusbapi");
        if(libHandle == NULL)
        {
            printf("Error loading mpusbapi.dll\r\n");
        }
        else
        {
            MPUSBGetDLLVersion=(DWORD(*)(void))\
                        GetProcAddress(libHandle,"_MPUSBGetDLLVersion");
            MPUSBGetDeviceCount=(DWORD(*)(PCHAR))\
                        GetProcAddress(libHandle,"_MPUSBGetDeviceCount");
            MPUSBOpen=(HANDLE(*)(DWORD,PCHAR,PCHAR,DWORD,DWORD))\
                        GetProcAddress(libHandle,"_MPUSBOpen");
            MPUSBWrite=(DWORD(*)(HANDLE,PVOID,DWORD,PDWORD,DWORD))\
                        GetProcAddress(libHandle,"_MPUSBWrite");
            MPUSBRead=(DWORD(*)(HANDLE,PVOID,DWORD,PDWORD,DWORD))\
                        GetProcAddress(libHandle,"_MPUSBRead");
            MPUSBReadInt=(DWORD(*)(HANDLE,PVOID,DWORD,PDWORD,DWORD))\
                        GetProcAddress(libHandle,"_MPUSBReadInt");
            MPUSBClose=(BOOL(*)(HANDLE))GetProcAddress(libHandle,"_MPUSBClose");
    
            if((MPUSBGetDeviceCount == NULL) || (MPUSBOpen == NULL) ||
                (MPUSBWrite == NULL) || (MPUSBRead == NULL) ||
                (MPUSBClose == NULL) || (MPUSBGetDLLVersion == NULL) ||
                (MPUSBReadInt == NULL))
                printf("GetProcAddress Error\r\n");
        }//end if else
    }//end LoadDLL
    

    Wenn ich in der Hilfe von VC nach dll linken suche ist dort eine ähnliche Struktur als Beispiel angegeben.
    Wenn ich jedoch diesen Code in das Hauptprogramm einbinde kommt immer der Fehler
    Syntaxfehler: Fehlendes ';' vor Bezeichner 'hInst'
    gefolgt von zahllosen Folgefehlern.

    Muss ich da noch irgendwelche Header einbinden, oder muss ich für HINSTANCE noch irgend einen Namespace angeben ??


  • Mod

    Ähhmmm... hInst kommt in Deinem Code-Schnippsel nicht vor.
    Und ja. Ich denke ohne einen #include <windows.h> wirst Du nicht weit kommen.


Log in to reply