1

Cpp 名前空間の HwndHost から派生した public ref クラスを実装するマネージ dll があります。mydll10.dll という名前の x86 バージョンと、mydll10_x64.dll という名前の x64 バージョンをビルドします。xaml ページの WPF アプリケーションで Cpp 名前空間を使用しています。「$(Platform)」条件を使用して、プロジェクトに適切な参照を追加できます。ただし、同じページで、x86 の xmlns:c="clr-namespace:Cpp;assembly=UvpProInspectWpf10" と x64 exe の xmlns:c="clr-namespace:Cpp;assembly=UvpProInspectWpf10_x64" の両方を使用する必要があります。xaml で #if #then #else を使用することはできません。

Cpp 名前空間が C# プロジェクトにある場合、ソリューションは書き込みにある可能性があります。

`myurl:"http://schemas.me.com/wpf/"
#if x64
[assembly: XmlnsDefinition(myurl, "UvpProInspectWpf10_x64")]
#else
[assembly: XmlnsDefinition(myurl, "UvpProInspectWpf10")]
#endif

Assembly.cs ファイルと定義

xmlns:c=" http://schemas.me.com/wpf/” 

xamlで。マネージ C++ プロジェクトでこれらのアセンブリ定義を行う方法が見つかりません。これは可能ですか?もちろん、命名規則を破ることはできます…ありがとう

4

1 に答える 1

1

それを見つけた。System.Xaml.dll への参照を C++ マネージ プロジェクトに追加します。AssemblyInfo.cpp ファイルを追加します。

using namespace System::Windows::Markup;
[assembly:XmlnsDefinition("http://schemas.me.com/wpf/", "Cpp")];

次に、xamlページで使用できます

xmlns:c=" http://schemas.me.com/wpf/” 

プロジェクトが適切な x86 または x64 バージョンを参照している

于 2013-10-18T15:25:13.547 に答える