DLLCALL传人参数char*(指针型参数)探讨求助
本帖最后由 lomo1316 于 2014-1-9 15:31 编辑调用的DLL库函数原型:
#define C_DLLEXPORT extern "C" __declspec(dllexport)
C_DLLEXPORT HANDLE Open (char* comPort);
Vc++的调用方式:
HANDLE hcom=NULL;
char comport="COM1";
hcom= Open(comport);
现在的调用方式:
Local $sFileName = @ScriptDir & '\SerialComDll.dll'
Local $hDllFile = DllOpen($sFileName)
Global $gComPortArray
$stBuffer = DllStructCreate("ptr pfname;wchar fname")
DllStructSetData($stBuffer, 2, "COM1")
$ptrBuffer = DllStructGetPtr($stBuffer, 2)
dllStructSetData($stBuffer, 1, $ptrBuffer)
$result = DllCall($sFileName , "ptr:cdecl", 5, "str*", DllStructGetPtr($stBuffer,2))
现在的情况是,函数返回值不对,应该是参数没正确传入,该如何调用呢?
各位大虾,Please Help Me! 带*的参数未必是指针,像你问的char*参数,印象里指的是字节数量不固定 本帖最后由 Ycxw2008 于 2014-2-17 07:05 编辑
指针你就传ptr 这我不懂。。。替你顶一下。。。
页:
[1]