extern "C"__declspec(dllexport) void show() //這段可以呼叫DLL,但我想試試下面這個方法
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgioCheck dlg1;
dlg1.DoModal();
}
//我直接加了個對話框類的頭檔案,然后
CDlgioCheck dlg1; //編譯過了。但是會發生中斷,如下圖
dlg1.DoModal();

請問大家,是因為不可以這樣直接呼叫對話框嗎?
還是我有哪些沒做好被我忽略了?
uj5u.com熱心網友回復:
在DLL中有添加對應的對話框資源IDD_XXXXX 么?點擊重試, 除錯看看
uj5u.com熱心網友回復:
dll資源切換問題,可以參考這個:https://blog.csdn.net/optman/article/details/332277uj5u.com熱心網友回復:
你有看到dlg頭檔案有個資源id嗎uj5u.com熱心網友回復:
對話框是沒問題的,extern "C"__declspec(dllexport) void show() //這段可以呼叫DLL,但我想試試下面這個方法
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgioCheck dlg1;
dlg1.DoModal();
}
這樣寫就可以正常顯示,但我想試另一種方法
uj5u.com熱心網友回復:
#pragma once
#include "staticcolor.h"
// CDlgpwd 對話框
#define IDD_DIALOG_PWD 136
class __declspec(dllexport) CDlgpwd;
class CDlgpwd : public CDialog
{
DECLARE_DYNAMIC(CDlgpwd)
public:
CDlgpwd(CWnd* pParent = NULL); // 標準建構式
virtual ~CDlgpwd();
// 對話框資料
enum { IDD = IDD_DIALOG_PWD };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
CString m_password;
afx_msg void OnPaint();
CStaticColor m_stcColorPwd;
virtual BOOL OnInitDialog();
CButtonColor m_btnok;
CButtonColor m_btncancel;
};
ID什么的我覺得沒問題
uj5u.com熱心網友回復:
https://blog.csdn.net/wlsgzl/article/details/8502106uj5u.com熱心網友回復:
好像這個不行吧,這個方法說的不就是這個嘛
extern "C"__declspec(dllexport) void show() //這段可以呼叫DLL,但我想試試下面這個方法
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgioCheck dlg1;
dlg1.DoModal();
}
我想實作的是
#include “CDlgioCheck ”
CDlgioCheck dlg1; //我想實作這樣呼叫動態庫
dlg1.DoModal();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/239293.html
標籤:進程/線程/DLL
上一篇:如何呼叫另一個類中定義的變數
