![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VC++6.0にてMFCを使うDLLを作成しています。
関連HPを参考になんとかDLLを作ることが出来ました。
そこで今度はDLL側でダイアログボックスを作成して表示させようとしたところうまくいきません。
エラーも無くスルーされてしまいます。
こういう使い方は出来ないのでしょうか。
↓DLL関数のソースファイルです。
----------------------------------------------
#include "StdAfx.h"
#include "Defs.h"
#include "Func.h"
#include "resource.h"
#include "testdlg.h"
#include "dlg2.h"
int WINAPI DllFunc( CString &p_rcStr, CWnd *p_pcWnd )
{
TestDlg dlg;
Cdlg2 dlg2;
dlg.ps = p_rcStr;
dlg2.DoModal();//なにも出ない
AfxMessageBox(p_rcStr);//コレはOK
dlg.DoModal();//何もでない
return TRUE;
}
--------------------------------------------
No.1ベストアンサー
- 回答日時:
理由としては
1.ダイアログ側で初期化時に不整合
2.リソースIDのバッティング
1の場合・・・ダイアログをEXEで単独で表示できるかを
確認したらよいかと思います。
2またはダイアログ側に問題が無い場合・・・DLLでのダイ
アログ使用時のトラブルは多分大体こっちです。
DLLと呼び出し側EXEの「resource.h」でコントロー
ルIDが重複しているとダイアログは表示されません。
重複ID値のリソースで数値を変更して(リソースエディ
タの[プロパティ][ID]で『IDC_XXX=301』のように入れ
る)表示されるようになれば、これが原因です。
根本的な解決は共有DLLなら(普通こっち)
---------------------------------------
int WINAPI DllFunc( CString &p_rcStr, CWnd *p_pcWnd )
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); //←コレ
---------------------------------------
を先頭行に入れてください。参考↓
http://www-kobayashi.ctrl.titech.ac.jp/members/m …
拡張DLLなら、↓の参考URLから「拡張DLLの
リソース」に飛んで見て下さい(DLLインスタンスハン
ドルは DllMain から取る)
参考URL:http://homepage2.nifty.com/DSS/VCPP/DLL/dllresou …
有り難うございます!!!!
IDの重複だったようです。
AFX_MANAGE_STATE(AfxGetStaticModuleState()); //←コレ
で一発解決でした。
とても助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switch文のエラーについて
-
構造体に決められた文字列を入...
-
C++での <iostream.h>と<iostre...
-
なぜ、C++の標準ヘッダをインク...
-
C++で、テキストファイルを一行...
-
VC++で文字列から任意の文字を...
-
C++の最初のあたり
-
vc++の使い方について
-
vectorのイテレータを大小比較...
-
C++で2次元配列charをループしたい
-
atlbase.h と afxwin.hの同時定義
-
条件式の省略
-
gccでコンパイル時のエラー
-
C言語の構造体についてです。
-
修正箇所の指摘のお願い(文字列...
-
構文エラーが出ているのですが...
-
string型からint型への型変換
-
std::wstringのメモリリークに...
-
【C++】ヘッダ内でstringを格納...
-
Haru PDF Library
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
switch文のエラーについて
-
構文エラーが出ているのですが...
-
なぜ、C++の標準ヘッダをインク...
-
gccでコンパイル時のエラー
-
空ENTERの判別
-
【C++】ヘッダ内でstringを格納...
-
snprintfが使用できない。
-
#include "fstream.h"
-
enumの値から定義名を文字列化...
-
C++で、テキストファイルを一行...
-
std::wstringのメモリリークに...
-
#defineの使い方について
-
C++での <iostream.h>と<iostre...
-
VC++で文字列から任意の文字を...
-
wstringの主力
-
vc++の使い方について
-
std::map の const 修飾について
-
構造体配列のvectorへの変換と...
-
指定した文字を削除したい
-
string型のフォーマット書式指...
おすすめ情報