2012-04-30 5 views
0

私はDelphiのクライアント(EXE)と私は、DLLを登録する必要なしに実行しようとしています.NET COM DLLを持っています。私はステップhereに従っており、私のDelphiクライアントはうまくコンパイルされます。しかし、私はDelphiの専門家ではなく、私はDeplhiでオブジェクトをどのように消費するかを理解することができません。 Skype4COM.dllの例をリンクして、どうすればdllにアクセスでき、その方法はDelphi 7からですか?前もって感謝します。デルファイ7 - 登録無料COMの活性化

+0

1)あなたは、COMの.dllを持っている場合は、その理由だけでプログラムを取得し、「します。regsvr32 MYDLL.DLL」を実行しません? 2).Net .dllが実際にあれば、Delphi7のWin32(アンマネージド).exeからどのように実行するのですか? – paulsm4

+0

現在、 "regasm mydll.dll"を使用してプログラムで登録していますが、レジストレーションのないアプローチを検討しています。なぜ私はDelphi 7からそれを実行できないでしょうか? MSDNのチュートリアルでは、C++とVB6を使用してそれを行う方法をデモンストレーションします。 – user1365081

+0

あなたはどんな問題を持っているのかよくわかりません。それは、(a)あなたのクライアントがオブジェクトを消費できるDLLを登録したときに、登録不要のものを設定する方法を知りたい場合、または(b)クライアントがオブジェクトをまったく消費できない場合あなたはDLLを登録しますか? –

答えて

0

これが答えではないですが、私はコード・サンプルを含めると、これはスタックオーバーフローの私は方法を知っている唯一の方法です。

場合によっては、私たちがSxSでデプロイしたVB6プロジェクトの1つに、MS Flex Gridコントロールへの参照を含めたサンプルがあります。クライアントはAbbottMST.exe、COMサーバーはMSTEngine.dllであり、これはクライアントマニフェストファイルAbbottMST.exe.manifestのカットダウンサンプルです。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity type="win32" name="AbbottMST" version="4.0.0.7"/> 
    <dependency> 
     <dependentAssembly> 
      <assemblyIdentity type="win32" name="MSTEngine" version="4.0.0.4"/> 
     </dependentAssembly> 
    </dependency> 
    <file name="msflxgrd.ocx"> 
     <comClass clsid="{6262D3A0-531B-11CF-91F6-C2863C385E30}" 
      tlbid="{5E9E78A0-531B-11CF-91F6-C2863C385E30}" 
      progid="MSFlexGridLib.MSFlexGrid.1" 
      description="Microsoft FlexGrid Control, version 6.0 (SP6)" 
     /> 
    </file> 
</assembly> 

あなたがマニフェストを含めるならば、あなたはサイド・バイ・サイドとしてデプロイする必要があることに注意してください。このプロジェクトでは、SxSをサポートしていないWindows 2000用の正規の登録済みバージョンと、XP用のサイドバイサイドバージョンの両方を用意する必要がありました。このマニフェストがバインドされたEXEのバージョンは、SxS以外のインストールでは実行されません。 (私たちは知りませんが、それは私たちの経験だったいくつかの魔法の呪文があるかもしれません。)

+0

Ciaranありがとうございます。私のクライアントはDelphi7です。** TestStub.exe **、COMサーバーはC#です。 ** ReportFramework.dll **。今すぐReportFramework.dllには、GAC経由でCrystal Reportingへの参照がたくさんあります。上記のコメントでは、 "クライアントマニフェストには他のアセンブリが含まれている必要があります"と言われていますので、私の** TestStub.exe.manifest **のCrystal dllを参照する必要があります(msflxgrdで行ったように)。 ocx)をReportFrameworkと一緒に並べて実行したい場合はどうすればいいですか? – user1365081

+0

いいえ、Crystal Reportsアセンブリはマニフェストに記述する必要はありません.GPAを使用して参照するので、.NET参照であるためです。マニフェストファイルにCOM参照を含める必要があります。私はあなたがしていることを試していないので、それについて100%確信していませんが、私はかなり自信があります。このすべての会話はCOMに関連しており、Delphi COMクライアントを.NETアセンブリのCOMプライマリinteropアセンブリに接続しようとしています。 –

関連する問題