線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1632
推到 Plurk!
推到 Facebook!

請問傳入DLL參數超過255個字元

答題得分者是:wyndog
jeffco
一般會員


發表:9
回覆:19
積分:5
註冊:2003-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-24 13:27:08 IP:210.242.xxx.xxx 未訂閱
function test(str:pchar):pchar;stdcall; external 'TestDLL.DLL'; 請問我要傳入一個大於255的str給DLL 出現下列錯誤 String literals may have at most 255 elements 要如何解決呢?
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-24 13:33:34 IP:60.248.xxx.xxx 未訂閱
你是直接這樣寫嗎? test(PChar('12312312312313123.....')); 其實,只要宣告個 string 出來
var
  s: string;
begin
  s := '123123213'; // 255以內
  s := s   '123123123'; // 這樣你就可以超過 255 了,變通一下就行了
  test(PChar(s));
end;
jeffco
一般會員


發表:9
回覆:19
積分:5
註冊:2003-11-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-24 14:28:31 IP:210.242.xxx.xxx 未訂閱
如果是由其他程式語言呼叫 這樣的用法可行嗎 會不會有型態不相容的問題
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-24 14:48:31 IP:60.248.xxx.xxx 未訂閱
其它語言呼叫?我不是很懂你的意思 String literals may have at most 255 elements 以這個錯誤來說,只是因為編譯器不認超過 255 的常數字串 所以,我們才要拆成二、三段 並不是 DLL 不支援超出 255的字串 實際上在用的時候,不管是要傳入多長的字串 實際上都只有傳入該字串的位址而已 所以不論是其它語言呼叫 Delphi 寫的 DLL 還是 Delphi 呼叫其它語言寫的 DLL 都是可以這樣用的
系統時間:2024-04-27 7:09:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!