怎么调用资源dll文件
我建了一个纯资源dll文件"OneTest.dll" (MFC appWizard[DLL])
里面有bmp文件和string
然后在MFC应用程序中调用,代码如下:
BOOL COneTestEXEApp::InitInstance()
{
m_hInstance = AfxGetResourceHandle();
m_hResourseHandle = LoadLibrary("OneTest.dll");
if (m_hResourseHandle)
{
AfxSetResourceHandle(m_hResourseHandle);
}
else
{
AfxMessageBox("Load library error!");
PostQuitMessage(1);
return TRUE;
}
AfxEnableControlContainer();
COneTestEXEDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
但是执行int nResponse = dlg.DoModal();时对话框出不来
调试进入CDialog::DoModal方法发现
int CDialog::DoModal()
{
// can be constructed with a resource template or InitModalIndirect
ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
m_lpDialogTemplate != NULL);
// load resource as necessary
LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
HGLOBAL hDialogTemplate = m_hDialogTemplate;
HINSTANCE hInst = AfxGetResourceHandle();
if (m_lpszTemplateName != NULL)
{
hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
hDialogTemplate = LoadResource(hInst, hResource);
}
if (hDialogTemplate != NULL)
lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);
// return -1 in case of failure to load the dialog template resource
if (lpDialogTemplate == NULL)
return -1;
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
返回值为空导致程序退出,请教各位这是怎么回事啊.
是我dll文件有问题吗?应该怎样解决.
里面有bmp文件和string
然后在MFC应用程序中调用,代码如下:
BOOL COneTestEXEApp::InitInstance()
{
m_hInstance = AfxGetResourceHandle();
m_hResourseHandle = LoadLibrary("OneTest.dll");
if (m_hResourseHandle)
{
AfxSetResourceHandle(m_hResourseHandle);
}
else
{
AfxMessageBox("Load library error!");
PostQuitMessage(1);
return TRUE;
}
AfxEnableControlContainer();
COneTestEXEDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
但是执行int nResponse = dlg.DoModal();时对话框出不来
调试进入CDialog::DoModal方法发现
int CDialog::DoModal()
{
// can be constructed with a resource template or InitModalIndirect
ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
m_lpDialogTemplate != NULL);
// load resource as necessary
LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
HGLOBAL hDialogTemplate = m_hDialogTemplate;
HINSTANCE hInst = AfxGetResourceHandle();
if (m_lpszTemplateName != NULL)
{
hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
hDialogTemplate = LoadResource(hInst, hResource);
}
if (hDialogTemplate != NULL)
lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);
// return -1 in case of failure to load the dialog template resource
if (lpDialogTemplate == NULL)
return -1;
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
返回值为空导致程序退出,请教各位这是怎么回事啊.
是我dll文件有问题吗?应该怎样解决.
...全文
相关推荐
VB调用DLL资源文件
将项目图片、文字等使用VC++编写资源文件DLL提供给VB调用
告别模糊!用GUI Guider和在线工具搞定LVGL图片显示(附两种方法详细对比)
本文详细对比了GUI Guider和在线转换工具在LVGL图片显示中的应用,帮助开发者解决图片模糊、尺寸适配等问题。GUI Guider提供可视化操作和实时预览,适合快速原型开发;在线工具则更灵活,适合动态内容处理。文章还提供了内存优化、透明通道处理等进阶技巧,助力提升嵌入式GUI开发效率。
C#调用DLL的几种方法,包括C#调用CC++C#DLL
c#中dll调用方法 一、 DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。 动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程...
dll中函数调用dll中的资源文件
dll中函数调用dll中的资源文件 dll中函数调用dll中的资源文件
合并 DLL至EXE资源文件调用
将DLL作为程序的资源文件,并查找内存地址,然后调用。


进程/线程/DLL
