2016-11-01 3 views
1

私はVisual Studio 2015 Community Editionを使用しています。暗黙的なDLLの作成については、こちらのhttps://msdn.microsoft.com/en-us/library/ms235636.aspxのチュートリアルに従っており、C++コンソールアプリケーションでdllを正常に参照しています。Visual BasicのリファレンスにC++ dllプロジェクトを追加するには?

Visual Basic Windowsフォームアプリケーションの参照にdllプロジェクトを追加しようとすると、「DLLプロジェクト名」への参照を追加できませんでした。いくつかの調査の後では、VBが.NETフレームワークをターゲットにしているのに対し、C++ dllはWindowsをターゲットにしているからだと思いますが、それだけではわかりません。私はこれを調整したり、C++ dllとdllを使用するGUIプロジェクト(GUIのVBを選んだのは本当にすばやく簡単にセットアップできるので)を含む解決策を設定することに大きな助けになりました。

DLLプロジェクトとVisual Basicプロジェクトの両方が同じソリューションに含まれていることに注意してください。

答えて

1

あなたのチュートリアルでは、.NETからコードを呼び出すのに役立つわけではなく、.NETフレームワークの相互運用性を前提としています。問題。 p-invokeを使用してDLLをインポートおよび呼び出し、またはDLLの周りにCOMラッパーを作成し、GACに登録してCOM CreateObject呼び出しで参照できます。

他の可能性は、C++/CLI .NET C++ DLLに変換することです。

参考文献:私はまた、あなたがユニバーサルのWindowsプラットフォーム(UWP)を標的とすれば、それはまた、提供していることを言及する必要がありますと仮定し

P-Invoke

COM

-UPDATE-

.NETとC++の間でバインディングをクリーンにし、ビジーなCOMワイヤーアップの一部を隠す。

0

A C++ DLLは、このようなビルド後のイベント「XCOPY」コマンドを使用して* .NETアプリケーションに追加する必要があります。あなたの選択したプロジェクトから

xcopy "$(SolutionDir)DLL\$(ConfigurationName)"\*.dll "$(TargetDir)"*.* /Y 

は、プロジェクトに行きます - > Properties-- >コンパイル - >ビルドイベント - >ビルド後のイベントコマンドライン

適切なコピーコマンドを入力します。

上記の例では、いくつかのC++ DLLがソリューションディレクトリの「DLL」フォルダに収集されていました。それらはすべてアプリケーションがビルドされるたびにアプリケーションフォルダにコピーされます。これらのDLLのDEBUGおよびRELEASEバージョンは別々のサブフォルダにありました。

他のポスターと同じように、* .NETコードのC++ DLLに対して正しいp-invoke宣言が必要です。

関連する問題