2年前VC++で既存のDLLをラップして拡張版DLLを作成しようとしているのですが、最初でつまづきました。DLLと選択してプロジェクトを作成し、いざオリジナルのDLLを取り込もうとしてソリューションエクスプローラのReferencesを右クリック、「参照の追加」から参照追加のダイアログを開いたまではいいのですが、ダイアログ上のメッセージで『項目が見つかりませんでした』という表示だけが出て、ボタンはOKとキャンセルしかなく、参照の追加ができないため全く先に進めなkなりました。してプロジェクトを作成する場合、外部DLLの参照はできないという制約などがあるのでしょうか。DLLを利用するには,DLLを直接参照するのでは無く,インポートライブラリと呼ばれるライブラリをリンクします。DLLをビルドすると,同時に作成される他,libコマンドに/defパラメータ(と.DEFファイル)を渡してインポートライブラリを作成することもできます。同一ソリューションにDLLのプロジェクトが存在する場合には,参照で可能なようですが。これは特殊な例だと考えた方がよいでしょう。返信遅れてすみません。「参照の追加」から行う参照ではなく、インポートライブラリという方法を使うのですね。ファイルを開けません。いうエラーになりました。取り込み方が間違っているでしょうか。directoryというメッセージが付加されるので、ファイルを読み込みにいこうとはしていると思います。作られたもののようです。(C#のプロジェクトからそのまま利用できることが確認できたため)基本的な質問で申し訳ありませんが、上記でお気づきの点がありましたらアドバイス頂けませんでしょうか。拡張子「.lib」のライブラリファイル?というものが必要ということでしょうか。手元の資材には、「.lib」のファイルがないのですが、この場合にはまず「.lib」を入手か生成?する必要があるのでしょうか。AssemblyのDLL?をVC++で取り込んで利用する)に対してどのような手続きをとればよいのか見極められておらず、やや困惑しています。Library)プロジェクトで作られたCOM形式のDLLもしくはOCXファイルでなければ参照できません。APIの「LoadLibrary」「GetProcAddress」「FreeLibrary」を利用して呼び出します。指定するか、プロジェクトの設定で「追加のライブラリディレクトリ」と「追加の依存ライブラリ」の設定をする必要があります。C#からは呼び出せません。DllImport属性を使います。2年前アドバイスありがとうございます。この周辺には全く不慣れなため、大変参考になります。_)m頂いたアドバイスを元にDLLの種類やその利用方法を調べてみていますが、複雑ですね。次のようなコードを書いてみたのですが、関数アドレスの取得の部分でlpFuncに有効値がとれませんでした。{MessageBox::Show(L"DLLのロードに失敗しました。{MessageBox::Show(L"関数のアドレス取得に失敗しました。14.0\VC\binにあるもの)というものを試してみたところ、有効に呼べそうなメンバーは認識されていないようでした。.textC:\mylib>このため、対象のDLLは「Win32プロジェクトのダイナミックリンクライブラリとして作られたもの」ではなさそうだと思われます。Assemblyと思われるDLLをVC++で取り込んで利用する場合、上記のアプローチではうまくいかないということでしょうか。彼らの狙いはいったいなんなんでしょうか。C++のCLRプロジェクト)というのを用いることでC#から呼び出すことができます。i;}}この2つの関数をC#/VB.NET/F#から呼べるようにC++/CLIのラッパークラスを作成します。このコードはCppSharpというのを用いて実現します。作られたもののようです。>(C#のプロジェクトからそのまま利用できることが確認できたため)さいしょの目的が>VC++で既存のDLLをラップして拡張版DLLを作成しようとしているのですが、最初でつまづきました。拡張版DLLであるならC#でつくるべきです。C#は.NetFramework上で動くものでありC++Win32の欠点をなくしてメモリー管理(ガベージコレクション)を自動化しています。ポインターは可変であり変わりにハンドル(^)をつかいトラッキング(追跡参照)します。C#ではDLLはEXEとの差はすくなくいまではEXEも参照設定できます。C#のDLLをC++で拡張するのは?ですね。ミクプラは自由にリンクできます。