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

求 Delphi call C++ builder 的 Demo(for Android)

尚未結案
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-04-23 15:36:29 IP:122.146.xxx.xxx 訂閱
如題,謝謝!
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-04-23 16:38:22 IP:114.32.xxx.xxx 訂閱
問題抽象了一點。還請具體一點。謝謝!


------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-04-23 17:54:56 IP:122.146.xxx.xxx 訂閱
感謝 aftcast 的指點,
如下程式為 Delphi
library MyLib;
function GetSum(a, b: integer ) : integer; cdecl;
begin
Result := a b;
end;
exports
GetSum name 'GetSum';
begin
end.
編成 Android .so 檔 libMyLib.so,
可使用 另外Delphi程式呼叫(TestMyLib)
procedure TForm1.Button1Click(Sender: TObject);
var
LibFN: string;
GetSum: function(a, b: integer ) : integer; cdecl;
hLib: HMODULE;
begin
LibFN := '/storage/emulated/0/Download/lib/armeabi-v7a/' 'libMyLib.so';
hLib := LoadLibrary(PWideChar(LibFN)); //ERROR (Segmentation fault (11))
if hLib<>0 then
begin
GetSum := GetProcAddress(hLib, 'GetSum');
ShowMessage(IntToStr(GetSum(3, 8)));
end else
ShowMessage(SysErrorMessage(GetLastError));
end;
但,使用 C builder 建立了 libMyLib1.so, 不確定該如何寫,如下
extern "C" __declspec( dllexport ) int GetSum1(int a, int b)
{
return a b;
};
extern "C" __stdcall int GetSum2(int a, int b)
{
return a b;
}
使用TestMyLib要呼叫,
在這行 GetSum := GetProcAddress(hLib, 'GetSum'); GetSum1 or GetSum2 均無法取得位址,
不知該如何解,謝謝!

===================引 用 aftcast 文 章===================


問題抽象了一點。還請具體一點。謝謝!




aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-04-23 21:42:26 IP:114.32.xxx.xxx 訂閱
 
你要處理的東西我去年九月搞過,但可能處理的方式不一樣,也成功。好奇你是否何開一個 for android .so 檔的project? 用什麼專案建立的?
delphi 是如何產生 so 檔? bcb 又是如何產生so檔的?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2015-04-24 08:18:38 IP:122.146.xxx.xxx 訂閱
感謝 aftcast 指導,
小弟使用XE8,先開一個Firemonkey專案,再將Mainform remove,
Delphi & BCB 都一樣,
謝謝!

===================引 用 aftcast 文 章===================



你要處理的東西我去年九月搞過,但可能處理的方式不一樣,也成功。好奇你是否何開一個 for android .so 檔的project? 用什麼專案建立的?
delphi 是如何產生 so 檔? bcb 又是如何產生so檔的?
系統時間:2024-07-05 5:09:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!