怎么获取DLL生成的指针(比较特殊)
首先DLL的一个函数原型PassThruOpen
(
void *pName
unsigned long *pDeviceID
)
关键在于参数*pDeviceID 说明文档上写的是
"Pointer ro location for the device ID that is assigned by the DLL"
这个指针就是调用函数时DLL自行分配的 这个函数打开后别的函数才有效
想了很久也不知道怎么获取有没有做过类似的大神解答下 谢谢 假定PassThruOpen返回值为BOOL类型Local $tStruct = DllStructCreate('char')
DllStructSetData($tStruct,1,'name')
Local $aResult = DllCall('xx.dll','BOOL','PassThruOpen','ptr',DllStructGetPtr($tStruct),'ULONG*',0)$aResult就是你要的指针 查了一下,根据http://www.drewtech.com/support/J2534/PassThruOpen.html这页面的代码
AU3的代码看起来应该是这样的Local $aResult = DllCall('xx.dll','long','PassThruOpen','ptr',0,'ULONG*',0)你要的指针同样是在$aResult 新手入门 学习了 回复 2# ceoguang
唉 感觉全乱套了 DllstructCreate 这个函数帮主文档里不是限定参数要为字符串吗 'char' 不明白啊 可以解释下吗 接触这个不久 很多地方都不熟悉啊 回复 5# gaoan000
DllstructCreate创建的是一个数据结构
你可以买本p版的dllcall的书看看
关于dllcall和DllstructCreate他那本书里写的很清楚 回复ceoguang
唉 感觉全乱套了 DllstructCreate 这个函数帮主文档里不是限定参数要为字符串吗 'char[ ...
gaoan000 发表于 2015-12-10 19:37 http://www.autoitx.com/images/common/back.gifLocal $tStruct = DllStructCreate('char')
DllStructSetData($tStruct,1,'name')
Local $aResult = DllCall('xx.dll','BOOL','PassThruOpen','ptr',DllStructGetPtr($tStruct),'ULONG*',0)
等同于
Local $aResult = DllCall('xx.dll','BOOL','PassThruOpen','str','name','ULONG*',0)
这样能明白么? 回复 7# ceoguang
多谢版主的回复明白了 谢谢 回复 7# ceoguang
还有 我在P版淘宝店订了书 都好几天了还没发货 掌柜的也不在 可以的话能帮我联系下吗? 回复 9# gaoan000
已帮你联系 回复 10# ceoguang
昨天终于收到了 感谢热心的版主 回复 10# ceoguang
对了 还有个问题想请教下 从dll里函数返回的指针比如Local $aResult = DllCall('xx.dll','BOOL','PassThruOpen','ptr',DllStructGetPtr($tStruct),'ULONG*',0)第二个参数传进去后函数会给分配一个数值到指定的地址 直接输出只是地址值 回复 12# gaoan000
有址址了直接就可以读啊 回复 13# ceoguang
所有的函数都调用成功了 最后再厚脸皮请教一下 自己编写的函数文件被调用时怎么自动显示那些参数 函数名之类的例如
#include <Array.au3>
_Array(...) 在输入_号后会有很多已经写好的函数可以选择 选入参数时候又有选择提示
怎么弄上去的啊
我知道已经问的很多了 但是可以再帮忙一下吗? 查了一下,根据http://www.drewtech.com/support/J2534/PassThruOpen.html这页面的代码
AU3的代码看起来应该是这样的
页:
[1]