ich versuche in Anlehnung an den Thread
http://www.qt-forum.de/forum/viewtopic. ... 9fcc67db59
eine Klasse zur Nutzung einer dll zu schreiben.
Bisher sieht sie so aus:
Header
Code: Alles auswählen
#ifndef QMPUSBAPI_H
#define QMPUSBAPI_H
#include <QLibrary>
#include "windows.h"
class QMPUSBAPI:public QLibrary
{
protected:
bool (* MPUSBGetDLLVersion)(void);
bool (* MPUSBGetDeviceCount)(char* pVID_PID);
bool (*MPUSBOpen)(DWORD instance, // Input
char* pVID_PID, // Input
char* pEP, // Input
DWORD dwDir, // Input
DWORD dwReserved);
public:
QMPUSBAPI();
DWORD PICGetDLLVersion(void);
DWORD PICGetDeviceCount(char* pVID_PID);
HANDLE PICOpen(DWORD instance, // Input
char* pVID_PID, // Input
char* pEP, // Input
DWORD dwDir, // Input
DWORD dwReserved);
};
#endif // QMPUSBAPI_Hcpp
Code: Alles auswählen
#include "qmpusbapi.h"
QMPUSBAPI::QMPUSBAPI()
{
MPUSBGetDLLVersion = NULL;
MPUSBGetDeviceCount = NULL;
MPUSBOpen = NULL;
}
DWORD QMPUSBAPI::PICGetDLLVersion(void)
{
bool tets = isLoaded();
if ( !MPUSBGetDLLVersion )
( DWORD& ) MPUSBGetDLLVersion = ( DWORD ) resolve( "mpusbapi.dll", "_MPUSBGetDLLVersion" );
tets = isLoaded();
return (DWORD)(*MPUSBGetDLLVersion)();
}
DWORD QMPUSBAPI::PICGetDeviceCount(char* pVID_PID)
{
bool tets = isLoaded();
if ( !MPUSBGetDeviceCount )
( DWORD& ) MPUSBGetDeviceCount = ( DWORD ) resolve( "mpusbapi.dll", "_MPUSBGetDeviceCount" );
tets = isLoaded();
return (DWORD)(*MPUSBGetDeviceCount)(pVID_PID);
}
HANDLE QMPUSBAPI::PICOpen(DWORD instance, // Input
char* pVID_PID, // Input
char* pEP, // Input
DWORD dwDir, // Input
DWORD dwReserved)
{
if ( !MPUSBOpen )
( HANDLE& ) MPUSBOpen = ( HANDLE ) resolve( "mpusbapi.dll", "_MPUSBOpen" );
return (HANDLE)(*MPUSBOpen)(instance, pVID_PID,pEP, dwDir, dwReserved);
}
MPUSBGetDLLVersion = 0x8d012d0 <mpusbapi!_MPUSBClose>
MPUSBGetDeviceCount = 0x8d015cc <mpusbapi!_MPUSBGetConfigurationDescriptor>
MPUSBOpen = 0x8d01608 <mpusbapi!_MPUSBGetDLLVersion>
Woran kann dies liegen und kann das die Ursache der unerwarteten Rückgabewerte sein? Oder liegt eventuell ein Syntaxfehler bei
Code: Alles auswählen
return (DWORD)(*MPUSBGetDLLVersion)();Danke im Voraus und Gruss
Lodo2609