你能告訴我如何在我的C程序中使用以下功能。如何從德爾福的DLL中導入函數?
德爾福DLL - 導出功能:
function GetCPUID (CpuCore: byte): ShortString; stdcall;
function GetPartitionID(Partition : PChar): ShortString; stdcall;
我沒有爲DLL的源代碼,所以我必須適應我的C程序到DLL,而不是周圍的其他方式。
我做以下,並得到錯誤
typedef char* (_stdcall *GETCPUID)(BYTE);
typedef char* (_stdcall *GETPID)(PCHAR);
GETCPUID pGetSerial;
GETPID pGetPID
HMODULE hWtsLib = LoadLibrary("HardwareIDExtractor.dll");
if (hWtsLib){
pGetSerial = (GETCPUID)GetProcAddress(hWtsLib, "GetCPUID");
char *str = (char*) malloc(1024);
str = pGetSerial((BYTE)"1");
pGetPID= (GETPID)GetProcAddress(hWtsLib, "GetPartitionID");
char *str1 = (char*) malloc(1024);
str1 = pGetPID("C:");
}
感謝
你準確得到了什麼錯誤?沒有這些信息就很難提供幫助。 – rusvdw 2009-03-04 14:49:08
該程序編譯並運行,但在調用DLL函數時崩潰。 – Ampere 2009-03-05 09:04:28