• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.dll .lib を作成するホルダーの指定法は?)

.dll .lib ホルダー指定法は?

このQ&Aのポイント
  • .NETで同一ソリューションの中に、C#でメインプログラム、C++でDLLプログラムを作りました
  • メインの .exeは Projects ⇒ MySolution ⇒ MyMainProject ⇒ bin ⇒ Debug ⇒ Main.exe のように出来ます
  • 現在は毎回 .dll .lib をコピーした後に、改めてMain.exeを実行していますが、操作が煩雑でミスが多発して困っております

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

ホルダーではなくフォルダなんですが…。 まぁそれはどうでもいいとして……。 >メインの .exeは Projects ⇒ MySolution ⇒ MyMainProject ⇒ bin ⇒ Debug ⇒ Main.exe >一方DLLは Projects ⇒ MyDLLProject ⇒ MyDLL.cppとなり、 これをビルドすると .dll .lib が MyDLLProject と同レベル位置にあるDebugホルダーの中に 微妙に位置が異なるようですが……。 VS2005StdでC#のプロジェクト「WindowsApplication1」を作成、ソリューション名はqa7880707とすると… Projects\qa7880707\WindowsApplication1 にC#のプロジェクトが作成され、Debug構成でビルドすると Projects\qa7880707\WindowsApplication1\bin\Debug\WindowsApplication1.exe に実行ファイルが作成されます。 さらに、ソリューションエクスプローラのソリューション名を右クリック、追加で新しいプロジェクトとしてWin32プロジェクト(DLL)「MyDLLProject」を追加すると Projects\qa7880707\MyDLLProject にWin32(DLL)のプロジェクトが作成され、Debug構成でビルドすると Projects\qa7880707\debug\MyDLLProject.dll にDLLが作成されます。 # libは Projects\qa7880707\MyDLLProject\Debug\MyDLLProject.lib # スケルトンでは出てきませんでしたが。コードにDllMain()しかないから…でしょうけど。 >もしDLLの.dll .lib をビルドの段階で Main.exe と同じホルダーに作ることが出来れば操作ミスは無くなります C++プロジェクトのリンカの全般に「出力ファイル」という項目はありませんか? # ちなみにこちらはVS2005Stdで確認。 標準だと"$(OutDir)\$(ProjectName).dll"に設定されているでしょうから、 "$(SolutionDir)\MyMainProject\bin\$(ConfigurationName)\$(ProjectName).dll"に変更してみてはどうでしょうか? # 右側に出る▼ボタンを押して、「<編集...>」を選択、出てきたダイアログで[マクロ]というボタンを押すと参照できるマクロが一覧表示されます。 # 他に環境変数なんかも参照できますけどね。設定していれば。 ソリューション内の別のプロジェクトの名前は参照できませんので、上記のようにベタ打ち…ですかねぇ。 ちなみに、.libはリンカの詳細に「インポート ライブラリ」で指定。 # ただ….libってC#で使えますか???

sato-may
質問者

お礼

ありがとうございます ご指導の通りの方法で出力ファイルを指定したところ一発OKとなりました 誠にありがとうございました C++のDLLは不慣れなものですから今後ともご指導を仰ぐこととなると思います 宜しくお願い申し上げます

関連するQ&A