Firemonkey を使用して iOS アプリを作成することに興味があります。このアプリケーションで使用したいネイティブ C ライブラリがいくつかあります。iOS では動的リンク ライブラリが許可されていないことはわかっていますが、この firemonkey iOS アプリで静的ライブラリを使用する方法はありますか?
質問する
2564 次
2 に答える
2
はい、C スタティック ライブラリを使用して、xcode を使用して Firemonkey iOS アプリとリンクできます。RADStudio X2 以外で Xcode を使用して実行しました。RADStudio で xcode プロジェクトを生成しました。Mac で xcode プロジェクトを開き、以下を追加しました。
function C_func(double :x):double; cdecl; external;
{$linklib my_c_lib.a}
以下を含む1つのCファイルを使用して、xcode(my_c_libという名前)で静的ライブラリプロジェクトを作成しました。
double C_func(double x)
{
return x+2.5;
}
同様に、コンパイル済みの静的ライブラリを使用できると思います。
于 2012-05-16T10:37:24.767 に答える
1
これが私が作った iOS アプリケーションです: Unit1.pas は XE2 によって生成されます:
unit Unit1;
interface
uses
SysUtils, Types, UITypes, Classes, Variants, FMX_Types, FMX_Controls, FMX_Forms,
FMX_Dialogs, FMXTee_Engine, FMXTee_Series, FMXTee_Procs, FMXTee_Chart,
FMX_ExtCtrls;
type
TForm1 = class(TForm)
CornerButton1: TCornerButton;
Chart1: TChart;
Series1: TLineSeries;
Label1: TLabel;
procedure CornerButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
x : double; // I added this in Xcode Editor
end;
// I added this declaration
function tst_function(x:double):double;cdecl;external;
var
Form1: TForm1;
implementation
{$R *.lfm}
{$link tst1.o} // I added this
procedure TForm1.CornerButton1Click(Sender: TObject);
var i: integer; x : double;
begin
for i := 1 to 500 do
begin
x:=tst_function(i*3.14/250.0);
Series2.Add(x);
end
end;
end.
C ファイル tst1.c は次のとおりです。
#include <stdio.h>
#include <math.h>
double tst_function(double x)
{
return sin(x)+0.25;
}
于 2012-05-16T22:37:22.260 に答える