2011-07-26 9 views
0

tlibimp.exe(バージョン11.0)を使用して、サードパーティの.NETタイプライブラリ(COMサーバーDLL)をインポートしようとしています。これは基本的にうまく動作しますが、Windows XPを実行している別のWindows 7と、別のWindows 7を実行しているときに結果が異なります。Win7マシンで生成されたコードはコンパイルされません。tlibimp.exeの出力が異なるOSで異なる

両方のマシンがあります。

  • ボーランドC++(RAD Studioの)限り私は2007年、 ボーランドを言うことができるように11.0
  • 同じバージョンの.NETフレームワークがインストールされて2007
  • tlibimp.exeバージョン(使用する.NET V2)
  • bcc32.exeバージョン5.93
コンパイラはとOCX.hに失敗し

Parameter mismatch in write access specifier of property Font 

(OKコンパイル)XPマシン上のコードの関連行がある:

__property Graphics::TFont * Font={ read=GetTFontProp, write=_SetTFontProp, stored=false, index=-512 }; 

Win7のマシン(失敗した)上の同じ行は次のとおりです。

__property IFontDisp* Font={ read=get_Font, write=set_Font, stored=false }; 

今私はこの違いがどこから来るのかは分かりません。何か案は?

歓声 ヘンドリック

+0

.net COMサーバはVCL 'Graphics :: TFont'をどのようにエクスポートできますか? –

+0

手がかりはありませんが、うまくいくようです。 Borlandコンポーネントラッパーの魔法のようなものでしょうか? – Hendrik

+0

私は、問題のクラスの2つのバージョン(1行だけでなく)に大きな違いがあると付け加えておきます。 WinXPのバージョンはTOleControlから継承され、Win7はOleserver :: TOleServerから継承されます – Hendrik

答えて

0

これは、か助けていない場合がありますが、私はシャープのアセンブリ、Cから、デルファイに2つのタイプライブラリをインポートしようとしている同様の問題がありました。

TOLeServerから継承された1つのタイプライブラリ(A)と、TOleControlのもう1つの(B)とは、タイプライブラリを生成した両方のアセンブリが事実上同一であったため、理由を見ることができませんでした。

問題は、Bがregasmに登録されていて、Aがそうでなかったことが判明しました。 Aを登録してタイプライブラリを再生成することで、この問題が解決されました。

関連する問題