我用pb调用vc编写的.dll,只能调用参数是int型的.dll,一旦调用参数是数组的便会提示我指定类型与声明函数类型不一致,但明明是一致的,那位高手遇到过此类问题,请赐教!!!
分数还可以增加,急!!!
参数是什么数组类型?或许这个.dll有问题都不一定
在C++里面数组是用指针表示的,所以在PB里调用最好用引用传参数
如:
sdav(ref int i)
声明时也应该加上 ref
sdav(long i)
string ls_test[]
sdav(long(ls_test))
没用过
帮你up
数组是可以传的 , 但在 pb 里你传进去的应该是此数组的首地址 ..
在 DLL 定义一个结构 , 指向你传进的内存区 ....
举个例子
你用的是dcic32.dll,你想调用IRead函数,
你在 global external functions 下声明一句:
将dcic32.dll拷入c:\windows(winnt\)\system32\
function int IRead(long icdev) library "dcic32.dll
定义的时候:
function int fun_1(long handle[]) library "*.dll
使用的时候:
long handle[]
integer li_ret
li_ret = fun_1(handle) // 这里的不用handle[]
注意不要固定[]的值