Unable to create a dialog box in MFC Extension DLL.
Hi all,
I am trying to create MFC Extension DLL using VS 2005.
1. First I have created a project of type MFC Extension DLL.
2. Then I added a dialog box with a text box, static text control and
buttons.
3. Then added a class for that dialog.
4. In dialog's header file I inserted AFX_EXT_CLASS, manually.
class AFX_EXT_CLASS CLogonParamDlg : public
CDialog
5. Then built and got .lib and .dll files.
1. In my client application, just commented ENUM line of dialog's
header file of MFC Extension DLL , as below. (In client its not
necessary and to avoid compiler errror due to
IDD_DLG_SET_LOGON_PARAM_DLG).
//enum { IDD = IDD_DLG_SET_LOGON_PARAM_DLG };
2. I have have added the above header file to project file. and added
header and lib file path.
3. Copied dll file to project's current working directory.
4. I have created object for the exported class implemented in
extension dll.
5. Then compiled client application without any warning and error. Then
executed.
6. But DoModal of extension dll's dialog class did not get executed.
I am trying this from last week. But didn't get success to create and
use mfc extension dll.
But don't know where I am doing wrong?
Can u please give me any tutorial link / explain steps to create and
use extension dll?
I would be happy if anyone send (purusothaman.a @ gmail.com) me sample
extension dll creation project and also a client application which uses
created extension dll.
Here I think source code may help u to identify the problem.
################### Extension DLL Source Code
###########################
file :: LogonParamDlg.h
----------------------------------
#pragma once
// CLogonParamDlg dialog
class AFX_EXT_CLASS CLogonParamDlg : public CDialog
{
DECLARE_DYNAMIC(CLogonParamDlg)
public:
CLogonParamDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CLogonParamDlg();
// Dialog Data
// enum { IDD = IDD_DLG_SET_LOGON_PARAM_DLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
support
DECLARE_MESSAGE_MAP()
};
///////////////////////////////////////////////////////////////////////////////
// LogonParamDlg.cpp : implementation file
//
#include "stdafx.h"
#include "LogonParamDlg.h"
// CLogonParamDlg dialog
IMPLEMENT_DYNAMIC(CLogonParamDlg, CDialog)
CLogonParamDlg::CLogonParamDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLogonParamDlg::IDD, pParent)
{
}
CLogonParamDlg::~CLogonParamDlg()
{
}
void CLogonParamDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CLogonParamDlg, CDialog)
END_MESSAGE_MAP()
// CLogonParamDlg message handlers
///////////////////////////////////////////////////////////////////////////////////////
resource.h
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by SFRSLogonRegySet.rc
//
#define IDD_DIALOG1 7000
#define IDC_EDIT1 7000
#define IDD_DLG_SET_LOGON_PARAM_DLG 7000
#define IDC_BTN_BROWSE 7001
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 7001
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 7002
#define _APS_NEXT_SYMED_VALUE 7000
#endif
#endif
..rc file
==========
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#include ""res\\SFRSLogonRegySet.rc2"" // non-Microsoft Visual
C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "TODO: <Company name>"
VALUE "FileDescription", "TODO: <File description>"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", "SFRSLogonRegySet.dll"
VALUE "LegalCopyright", "TODO: (c) <Company name>. All
rights reserved."
VALUE "OriginalFilename", "SFRSLogonRegySet.dll"
VALUE "ProductName", "TODO: <Product name>"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_DLG_SET_LOGON_PARAM_DLG DIALOGEX 0, 0, 231, 126
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
| WS_SYSMENU
CAPTION "SFRS logon parameters"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,59,95,50,14
PUSHBUTTON "Cancel",IDCANCEL,122,95,50,14
EDITTEXT IDC_EDIT1,28,51,115,13,ES_AUTOHSCROLL
RTEXT "Home directory path:",IDC_STATIC,27,41,69,10
PUSHBUTTON "Browse",IDC_BTN_BROWSE,154,51,37,12
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_DLG_SET_LOGON_PARAM_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 224
TOPMARGIN, 7
BOTTOMMARGIN, 119
END
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)
#include "res\SFRSLogonRegySet.rc2" // non-Microsoft Visual C++ edited
resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
########################## End of Extension DLL
############################
Client Application Source Code
---------------------------------------------
#include "stdafx.h"
#pragma comment(lib, "SFRSLogonRegySet.lib")
#include "LogonParamDlg.h"
LONG CreateRegistryEntries(HKEY hKey, HKEY &hSubKey)
{
...............
...............
...............
CLogonParamDlg dlg; // Here I am creating object.
dlg.DoModal(); // Trying to display the dialog box. But happens
nothing.
...............
...............
...............
return 0;
}