0

マネージ dll (C# で記述) を呼び出す /clr を使用するレガシー C++ アプリケーションがあります。

アプリは#import、ADOX を参照するために使用します。dll は ADOX も参照します。

私のdllへの参照をC++プロジェクトに追加するまで、すべて問題ありません。次に、およびにSTDAFX.CPP関連するコンパイル時に何百ものエラーが発生します。エラーの中には、インターフェイスの再定義などに関するものもあれば、マネージ コードであるかのように tlh と tli をコンパイルしようとするものもあります。msadox.tlimsadox.tlh

私は成功せずに試し#pragma managed(off)てみました。#import

関連する場合#importは、libid:...メソッドを使用します。

この対立がどのように発生し、それを克服するために何ができるかわかりません。助けてください!

4

1 に答える 1

0

C ++プロジェクト参照からdll参照を削除#using "my_managed.dll"し、単一のcppファイル(dllを参照する唯一のファイル)で使用することで、問題を回避しました。

次に、コンパイラは、(によって)すでに定義されているためにdllから一部のADOXシンボルをインポートできないことを警告しました#import ...が、それらは警告にすぎなかったため、を使用し#pragmaてオフにして無視することができました。

これですべてが機能します!

于 2010-10-01T16:16:59.430 に答える