亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提示錯誤:Invalid pointer operation.何解?

提示錯誤:Invalid pointer operation.何解?

慕標琳琳 2022-12-16 18:14:50
dll函數代碼如下:function BaseEncode(ss:PChar;Res:PChar):Integer;stdcall;beginStrCopy(Res,ss);StrCat(Res,'_00000');Result := StrLen(Res);end;exportsBaseEncode;調用代碼如下:function BaseEncode(ss:Pchar; Res:PChar):Integer;stdcall;external '../ChangCode/changecode.dll';procedure TForm1.Button2Click(Sender: TObject);varss:PChar;Res:PChar;Num:Integer;beginss := 'good!';Res := StrAlloc(80);Num := BaseEncode(PChar(ss), PChar(Res));Edit1.Text := Res;Edit2.Text := IntToStr(Num);StrDispose(ss);StrDispose(Res);end;但結果可以正確顯示。是這個問題Edit1.Text := string(Res); 改了就可以。小弟一直用JAVA,DELPHI剛開始用,謝謝啦。
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

Num := BaseEncode(PChar(ss), PChar(Res));是這一行出現問題嗎?試著修改為:Num := BaseEncode(ss, Res); 
如果是Edit1.Text := Res;這一行,則修改為 Edit1.Text := string(Res); 

你說明白啊,哪個地方報錯? 
StrDispose, 這個你不能使用,
Description

StrDispose is provided for backward compatibility only. StrDispose disposes of a string on a heap that was previously allocated with StrAlloc or StrNew. 

If Str is nil, StrDispose does nothing.需要和StrAlloc或StrNew一起使用。 
去掉最后2行,就可以了。

查看完整回答
反對 回復 2022-12-18
  • 1 回答
  • 0 關注
  • 513 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號