调用指针参数的dll时候,出现"invalid pointer operation(100)

C

caoli

Unregistered / Unconfirmed
GUEST, unregistred user!
我写的一个dll,调用另外一个c++开发的dll的一个函数,其中一个参数是char *str。type TTransData = function(msgType: integer; str: PChar): Integer; stdcall;function TFF.TransData(const Func_Name: String; const msgType: integer; str: Pchar): Integer;const BufLen = 1024 * 40;begin result := SI_WfdNbTransData(msgType, PChar(str), );end;//调用str : array[0..233] of char;//Messagebox(inttostr(strlen(pchar(tempStr)))+'['+Pchar(@str)+']', 'in信息', MB_ICONINFORMATION); iRet := WfdNbTransData(FUNC_NAME, msgType, Pchar(@str), com);如果 Messagebox这行注销掉,直接出现“invalid pointer operation”如果不注释掉,就能正常过。。。请问正确的做法是什么样的?在实际的程序中,肯定不能要提示。
 
这个问题很简单,只要把messagebox 换成String s = inttostr(strlen(pchar(tempStr)))+'['+Pchar(@str)+']';这样一个空语句就行了。不过我怀疑你的内存控制有问题,你是否应该把str初始化一下?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
638
import
I
I
回复
0
查看
805
import
I
I
回复
0
查看
575
import
I
顶部