-1
最近dll呼び出しでいくつかの作業を行っています.dllはcomオブジェクトと通信することでした。ヘルプファイルでは、例はDelphiで書かれていました。まず、それはイベントを上げ、MethodA
という名前のメソッドを呼び出して、OnOperatorInfoMsg
というイベントだった、イベントはDelphiで定義されたものを返し以下だった:Delphiの構造体をC#に変換して構造体からデータを取得する方法
OnOperatorInfoMsg = procedure(Sender: TObject; wOperatorCount: Integer; OperatorsInfo: Integer) of object;
とdnspyを通じて、私はイベントがC#のように翻訳された見つけますこれは:
public class OnOperatorInfoMsgEvent
{
public int wOperatorCount;
public int operatorsInfo;
public OnOperatorInfoMsgEvent(int wOperatorCount, int operatorsInfo);
}
および私は、C#からOperatorsInfoでwAgentID、wSkillGroupID、AgentStatusを取得できますか
OPINFO
OPINFO = record
wAgentID: WORD;
wSkillGroupID: WORD;
wWorkGroupID: WORD;
AgentStatus: AGENT_STATUS;
end;
:DelphiでOperatorsInfoは次のように定義されて?
は答えて、ここで十分な詳細は、リモートではありません。質問を大幅に編集する必要があります。しかし、私は、Delphiのタイプ 'TCccCtrlXOnOperatorInfoMsg'はC#での簡単な相互運用性の定義がないと言うことができます。もちろん、C#ホスト実行ファイルとDelphi DLLとの間でピンボケ相互運用を行っていると仮定します。しかし、それは推測です。 –
少なくとも2つの質問があります。 'TCccCtrlXOnOperatorInfoMsg'の翻訳は完全に間違っています。これはクラスではなく、メソッド参照です(@DavidHeffernanの注釈として、C#が使用できるものではありません)。最初の例では 'OperatorsInfo:Integer'がありますが、最後にはそれがレコードでありintではないことが示唆されています。 –
質問を更新しましたか?もう助けてください。 –