Delphi 2007にCOM Interopで使用できる.Netクラスライブラリをインポートし、Decimalデータ型をtagDECパックレコードとして使用可能にしました。クラスライブラリを使用できるように、このレコードタイプをどのように使用すればよいでしょうか?
TKSDelphiでtagDECを使用する方法
編集
以下COM相互運用機能を通じてのActiveXとして公開され、私のC#のコードです:
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("ClassLibrary.Class1")]
public class Class1
{
[ComVisible(true)]
public string Method1(DateTime pDateTime, int pID, decimal pQty)
{
...........
}
}
で私は、DelphiでPC上のregasmでライブラリを登録コマンド:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe .\ClassLibrary.dll /tlb:ClassLibrary.tlb
デルファイ2007では、インポートコンポーネント、私はタイプライブラリをインポートし、それはのは、プロキシクラスで次のメソッドに変換し得る:
function Method1(pDateTime: TDateTime; pID: Integer; pQty: TDecimal): WideString;
TDecimal
はActiveX
単位で見つかった、実際にタイプtagDEC
のpacked record
です。
{ from WTYPES.H }
PDecimal = ^TDecimal;
{$EXTERNALSYM tagDEC}
tagDEC = packed record
wReserved: Word;
case Integer of
0: (scale, sign: Byte; Hi32: Longint;
case Integer of
0: (Lo32, Mid32: Longint);
1: (Lo64: LONGLONG));
1: (signscale: Word);
end;
TDecimal = tagDEC;
{$EXTERNALSYM DECIMAL}
DECIMAL = TDecimal;
私の質問は、私はこれを記入する方法であるので、私は、.NETクラスライブラリのメソッドに小数点値を渡すことができます。以下は、それは構文がありますか?ヘルパー機能はありますか?私は何も見つかりませんでした。
Tksもう一度!
現時点では、この質問に答えるのはやや難しいです。いくつかの詳細を提供してください。 –
tagDECで圧縮されたレコードの構造は何ですか?そこから来るのは... RTL? – jachguate
すべての詳細、C#とDelphiで投稿を編集しました。 Tksそんなに – Pascal