質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
VC++

VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

解決済

自作dllをデバッグしたいのですが。

unikuma
unikuma

総合スコア8

VC++

VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

1回答

0リアクション

0クリップ

305閲覧

投稿2022/09/11 12:06

前提

C++でdllを作成し、同ソリューション内のコンソールプロジェクトで参照し、デバッグしようとしたのですが。
「プログラム 〇〇.dll を開始できません。〇〇.dll は有効なWin32アプリケーションではありません。」と出てしまい、実行できません。

該当のソースコード

dll側の.h

C++

#pragma once #include <iostream> #ifdef EXPORT #define declspec __declspec(dllexport) #else #define declspec __declspec(dllimport) #endif class declspec Test { public: void __cdecl Print(std::string); };

dll側の.cpp

C++

#include "test.h" void __cdecl Test::Print( std::string text ) { std::cout << text << std::endl; }

コンソール側の.cpp

C++

#include <iostream> #include "../DllTest/test.h" int main() { Test t; t.Print( "Hello world" ); return 0; }

試したこと

以前もこのような事があったのですが、その時はランタイムライブラリの設定がバラバラだったので統一、同じ事をしてみたのですが解決しませんでした。

補足情報(FW/ツールのバージョンなど)

補足
プロジェクトの設定はランタイムライブラリをコンソール・DLLどちらもReleaseは「マルチスレッド(/MT)」、Debugは「マルチスレッド デバッグ(/MTd)」にしたのと、DLL側のプロジェクトは追加のオプションで「/D "EXPORT"」と追加しました。

ツール
Microsoft Visual Studio 2022

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VC++

VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。