找回密码
 加入
搜索
查看: 2509|回复: 3

[AU3基础] DLLCALL传人参数char*(指针型参数)探讨求助

[复制链接]
发表于 2014-1-9 15:16:03 | 显示全部楼层 |阅读模式
本帖最后由 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[125]="COM1";
        hcom= Open(comport);
现在的调用方式:

Local $sFileName = @ScriptDir & '\SerialComDll.dll'
Local $hDllFile = DllOpen($sFileName)
Global $gComPortArray
$stBuffer = DllStructCreate("ptr pfname;wchar fname[125]")
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!
发表于 2014-1-28 15:01:44 | 显示全部楼层
带*的参数未必是指针,像你问的char*参数,印象里指的是字节数量不固定
发表于 2014-2-10 21:47:22 | 显示全部楼层
本帖最后由 Ycxw2008 于 2014-2-17 07:05 编辑

指针你就传ptr
发表于 2014-2-11 14:53:39 | 显示全部楼层
这我不懂。。。替你顶一下。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 09:10 , Processed in 0.229712 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表