1

structポインターをパラメーターとして持つネイティブc++関数を呼び出すc++/cliプログラムを作成しました。そのため、c ++ /cliを使用してネイティブc++のラッパーを作成し、c#wcfプログラム(別のc ++クライアントに対してサーバーとして機能する)に公開できるようにしました。

今、c ++ / cliプログラムをコンパイルすると、エラーは発生せず、コンパイルされ、このc ++ / cliのdllが生成されますが、出力ウィンドウを見ると、リンクに失敗したようなものがあります(コンパイルには影響しません)。以下は、出力ファイルに表示されるメッセージです。

1>Linking...
1>Embedding manifest...
1>Caching metadata information for c:\windows\system32\msxml6.dll...
1>Could not cache metadata for c:\windows\system32\msxml6.dll: reflection failed.

したがって、このメッセージの意味と、c#wcfプログラムでこのc ++ / cli dllを使用している場合に、これがc#wcfプログラムに影響するかどうか、およびこのメッセージを削除するにはどうすればよいかを知りたいです。

4

1 に答える 1

0

MSXML6.DLL はネイティブ DLL であると確信しているため、管理されたメタデータはありません。

これを .NET Reflector で確認しました。

// Assembly msxml6

  Location: C:\Windows\System32\msxml6.dll
  Name: msxml6, 'C:\Windows\System32\msxml6.dll' is not a .NET module.

そのインポート ライブラリを [リンカー] -> [入力] -> [追加の依存関係] プロジェクト オプションにリストしていることを確認し、.NET アセンブリのように参照しようとしないでください。

于 2012-05-18T21:22:18.323 に答える