我先谢谢!
最好有比较详细一点的步骤说明。
12 个解决方案
#1
书上的一个例子。。
1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。
2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”
选择“New”,至此对话框已添加到DLL工程中。
3、为对话框添加一新类,如:CTest,基类为CDialog。
4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:
extern "C" __declspec(dllexport) void Show()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
test.DoModal ();
}
别忘了在文件中添加: #include "Test.h":),大功告成,编译吧!
5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
6、试试看,是不是DLL中对话框显示出来了:)
测试环境:VC6.0+Win2000
1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。
2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”
选择“New”,至此对话框已添加到DLL工程中。
3、为对话框添加一新类,如:CTest,基类为CDialog。
4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:
extern "C" __declspec(dllexport) void Show()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
test.DoModal ();
}
别忘了在文件中添加: #include "Test.h":),大功告成,编译吧!
5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
6、试试看,是不是DLL中对话框显示出来了:)
测试环境:VC6.0+Win2000
#2
你平时怎么弄 对话框程序的就怎么 写MFC DLL
比如你有1个窗口类. 你把你要做的工作都做好.
然后
写1个 函数
void XXXXX()
{
CXXXDlg xxxDlg;
xxxDlg.Domodal();
}
注意 资源的切换.
如果你用MFC 扩展DLL 自己找资料去吧.
比如你有1个窗口类. 你把你要做的工作都做好.
然后
写1个 函数
void XXXXX()
{
CXXXDlg xxxDlg;
xxxDlg.Domodal();
}
注意 资源的切换.
如果你用MFC 扩展DLL 自己找资料去吧.
#3
若用MFC 扩展DLL,请问,应该如何在DLL中显示对话框。
俺用模式和非模式在DLL中调用(不是exe文件中调用DLL中的某个导出函数,而该函数中显示对话框),
总是出现相同的错误。
请问大家:如何解决?
俺用模式和非模式在DLL中调用(不是exe文件中调用DLL中的某个导出函数,而该函数中显示对话框),
总是出现相同的错误。
请问大家:如何解决?
#4
3楼你可能没有进行资源转换,你的对话框时DLL资源,调用DLL函数显示对话框时,要进行资源转换
#5
同意!
#6
请问:如何资源转化啊?
我做了另一个Demo,可是到处DlL 中的对话框,该对话框没有加载ActiveX控件。在这个Demo中,我是在EXE中静态加载DLL的。
但是,目前我的另一个Demo中,是通过LoadLibrary来加载DlL的。 加载后,希望能够在DLL中 实现对话框 的输出。
#7
标准DLL:一般就只封装API或基本函数
MFC DLL:可以封装对话框,对话框内部可以使用MFC的函数.但是不能到出整个对话框.
需要自己写1个一般的函数,在该函数中弹出对话框参见2楼.
MFC 扩展DLL 可以导出对话框.... 不过好像只能是MFC 程序使用.我对MFC 扩展DLL 不怎么了解.
一般就使用MFC DLL 这样 非MFC 程序也能使用,觉得比MFC 扩展DLL 方便1点.
资源MFC DLL进行资源转换也很方便
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
CxxxDlg dlg;
dlg.domodal;
// }
MFC DLL:可以封装对话框,对话框内部可以使用MFC的函数.但是不能到出整个对话框.
需要自己写1个一般的函数,在该函数中弹出对话框参见2楼.
MFC 扩展DLL 可以导出对话框.... 不过好像只能是MFC 程序使用.我对MFC 扩展DLL 不怎么了解.
一般就使用MFC DLL 这样 非MFC 程序也能使用,觉得比MFC 扩展DLL 方便1点.
资源MFC DLL进行资源转换也很方便
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
CxxxDlg dlg;
dlg.domodal;
// }
#8
AFX_MANAGE_STATE(AfxGetStaticModuleState());
扩展DLL 好像没这个宏
扩展DLL 好像没这个宏
#9
再补充:在第一Demo中,加载了ActiveX也可以正常显示。但是第二个Demo就说显示不了。而且
调用DoModal或Create时,就是蹦掉。
可能就是资源转化吧,但不清楚啊,请指点指点。
调用DoModal或Create时,就是蹦掉。
可能就是资源转化吧,但不清楚啊,请指点指点。
#10
a、Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。
b、Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。
静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。该类DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。输入函数有如下形式:
extern "C" EXPORT YourExportedFunction( );
如果没有extern “C”修饰,输出函数仅仅能从C++代码中调用。
DLL应用程序从CWinApp派生,但没有消息循环。
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换MFC模块状态。
Regular DLL能够被所有支持DLL技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从CWinApp继承下来的类,DllMain函数被MFC所提供,不用自己显式的写出来。
c、Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。它输出的函数仅可以被使用MFC且动态链接到MFC的应用程序使用。可以从MFC继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供MFC或MFC继承类的对象指针。Extension DLL使用MFC的动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。Extension DLLs 和Regular DLLs不一样,它没有一个从CWinApp继承而来的类的对象,所以,你必须为自己DllMain函数添加初始化代码和结束代码。
和规则DLL相比,有以下不同:
1、它没有一个从CWinApp派生的对象;
2、它必须有一个DllMain函数;
3、DllMain调用AfxInitExtensionModule函数,必须检查该函数的返回值,如果返回0,DllMmain也返回0;
4、如果它希望输出CRuntimeClass类型的对象或者资源(Resources),则需要提供一个初始化函数来创建一个CDynLinkLibrary对象。并且,有必要把初始化函数输出;
5、使用扩展DLL的MFC应用程序必须有一个从CWinApp派生的类,而且,一般在InitInstance里调用扩展DLL的初始化函数。
扩展DLL的资源转换 我不清楚...
b、Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。
静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。该类DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。输入函数有如下形式:
extern "C" EXPORT YourExportedFunction( );
如果没有extern “C”修饰,输出函数仅仅能从C++代码中调用。
DLL应用程序从CWinApp派生,但没有消息循环。
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换MFC模块状态。
Regular DLL能够被所有支持DLL技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从CWinApp继承下来的类,DllMain函数被MFC所提供,不用自己显式的写出来。
c、Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。它输出的函数仅可以被使用MFC且动态链接到MFC的应用程序使用。可以从MFC继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供MFC或MFC继承类的对象指针。Extension DLL使用MFC的动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。Extension DLLs 和Regular DLLs不一样,它没有一个从CWinApp继承而来的类的对象,所以,你必须为自己DllMain函数添加初始化代码和结束代码。
和规则DLL相比,有以下不同:
1、它没有一个从CWinApp派生的对象;
2、它必须有一个DllMain函数;
3、DllMain调用AfxInitExtensionModule函数,必须检查该函数的返回值,如果返回0,DllMmain也返回0;
4、如果它希望输出CRuntimeClass类型的对象或者资源(Resources),则需要提供一个初始化函数来创建一个CDynLinkLibrary对象。并且,有必要把初始化函数输出;
5、使用扩展DLL的MFC应用程序必须有一个从CWinApp派生的类,而且,一般在InitInstance里调用扩展DLL的初始化函数。
扩展DLL的资源转换 我不清楚...
#11
对不起,我有一点没说清楚:我不能用对话框,我想要的效果是,就像控件一样,主程序只需调用一些函数就可以把它(dll或什么)生成的显示窗口嵌入到主程序的窗体上。
我说一下我原来的做法:用mfc ActiveX做的,根据bmp图形数据绘制的openGL显示窗口,并有工具栏按钮操作窗口图形变换,生成.ocx文件,然后把.ocx拿到主程序处,按添加控件的方法直接就能在主程序窗体上显示了,主程序只调用了一个控件的方法把某些数据传递过去就行了。可是,拿到领导那里不能用,说是他的系统是win7,有一个注册权限的问题。所以才让我改用dll做,要求实现起来跟用ActiveX一样的。
我对dll能否实现上述的要求一点不清楚,现在不知道从那里下手,还请各位帮忙,谢谢回帖的各位!
我说一下我原来的做法:用mfc ActiveX做的,根据bmp图形数据绘制的openGL显示窗口,并有工具栏按钮操作窗口图形变换,生成.ocx文件,然后把.ocx拿到主程序处,按添加控件的方法直接就能在主程序窗体上显示了,主程序只调用了一个控件的方法把某些数据传递过去就行了。可是,拿到领导那里不能用,说是他的系统是win7,有一个注册权限的问题。所以才让我改用dll做,要求实现起来跟用ActiveX一样的。
我对dll能否实现上述的要求一点不清楚,现在不知道从那里下手,还请各位帮忙,谢谢回帖的各位!
#12
楼主最好找一篇文章系统的看看,自己理解下在问
#1
书上的一个例子。。
1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。
2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”
选择“New”,至此对话框已添加到DLL工程中。
3、为对话框添加一新类,如:CTest,基类为CDialog。
4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:
extern "C" __declspec(dllexport) void Show()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
test.DoModal ();
}
别忘了在文件中添加: #include "Test.h":),大功告成,编译吧!
5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
6、试试看,是不是DLL中对话框显示出来了:)
测试环境:VC6.0+Win2000
1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。
2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”
选择“New”,至此对话框已添加到DLL工程中。
3、为对话框添加一新类,如:CTest,基类为CDialog。
4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:
extern "C" __declspec(dllexport) void Show()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
test.DoModal ();
}
别忘了在文件中添加: #include "Test.h":),大功告成,编译吧!
5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
6、试试看,是不是DLL中对话框显示出来了:)
测试环境:VC6.0+Win2000
#2
你平时怎么弄 对话框程序的就怎么 写MFC DLL
比如你有1个窗口类. 你把你要做的工作都做好.
然后
写1个 函数
void XXXXX()
{
CXXXDlg xxxDlg;
xxxDlg.Domodal();
}
注意 资源的切换.
如果你用MFC 扩展DLL 自己找资料去吧.
比如你有1个窗口类. 你把你要做的工作都做好.
然后
写1个 函数
void XXXXX()
{
CXXXDlg xxxDlg;
xxxDlg.Domodal();
}
注意 资源的切换.
如果你用MFC 扩展DLL 自己找资料去吧.
#3
若用MFC 扩展DLL,请问,应该如何在DLL中显示对话框。
俺用模式和非模式在DLL中调用(不是exe文件中调用DLL中的某个导出函数,而该函数中显示对话框),
总是出现相同的错误。
请问大家:如何解决?
俺用模式和非模式在DLL中调用(不是exe文件中调用DLL中的某个导出函数,而该函数中显示对话框),
总是出现相同的错误。
请问大家:如何解决?
#4
3楼你可能没有进行资源转换,你的对话框时DLL资源,调用DLL函数显示对话框时,要进行资源转换
#5
同意!
#6
请问:如何资源转化啊?
我做了另一个Demo,可是到处DlL 中的对话框,该对话框没有加载ActiveX控件。在这个Demo中,我是在EXE中静态加载DLL的。
但是,目前我的另一个Demo中,是通过LoadLibrary来加载DlL的。 加载后,希望能够在DLL中 实现对话框 的输出。
#7
标准DLL:一般就只封装API或基本函数
MFC DLL:可以封装对话框,对话框内部可以使用MFC的函数.但是不能到出整个对话框.
需要自己写1个一般的函数,在该函数中弹出对话框参见2楼.
MFC 扩展DLL 可以导出对话框.... 不过好像只能是MFC 程序使用.我对MFC 扩展DLL 不怎么了解.
一般就使用MFC DLL 这样 非MFC 程序也能使用,觉得比MFC 扩展DLL 方便1点.
资源MFC DLL进行资源转换也很方便
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
CxxxDlg dlg;
dlg.domodal;
// }
MFC DLL:可以封装对话框,对话框内部可以使用MFC的函数.但是不能到出整个对话框.
需要自己写1个一般的函数,在该函数中弹出对话框参见2楼.
MFC 扩展DLL 可以导出对话框.... 不过好像只能是MFC 程序使用.我对MFC 扩展DLL 不怎么了解.
一般就使用MFC DLL 这样 非MFC 程序也能使用,觉得比MFC 扩展DLL 方便1点.
资源MFC DLL进行资源转换也很方便
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
CxxxDlg dlg;
dlg.domodal;
// }
#8
AFX_MANAGE_STATE(AfxGetStaticModuleState());
扩展DLL 好像没这个宏
扩展DLL 好像没这个宏
#9
再补充:在第一Demo中,加载了ActiveX也可以正常显示。但是第二个Demo就说显示不了。而且
调用DoModal或Create时,就是蹦掉。
可能就是资源转化吧,但不清楚啊,请指点指点。
调用DoModal或Create时,就是蹦掉。
可能就是资源转化吧,但不清楚啊,请指点指点。
#10
a、Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。
b、Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。
静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。该类DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。输入函数有如下形式:
extern "C" EXPORT YourExportedFunction( );
如果没有extern “C”修饰,输出函数仅仅能从C++代码中调用。
DLL应用程序从CWinApp派生,但没有消息循环。
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换MFC模块状态。
Regular DLL能够被所有支持DLL技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从CWinApp继承下来的类,DllMain函数被MFC所提供,不用自己显式的写出来。
c、Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。它输出的函数仅可以被使用MFC且动态链接到MFC的应用程序使用。可以从MFC继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供MFC或MFC继承类的对象指针。Extension DLL使用MFC的动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。Extension DLLs 和Regular DLLs不一样,它没有一个从CWinApp继承而来的类的对象,所以,你必须为自己DllMain函数添加初始化代码和结束代码。
和规则DLL相比,有以下不同:
1、它没有一个从CWinApp派生的对象;
2、它必须有一个DllMain函数;
3、DllMain调用AfxInitExtensionModule函数,必须检查该函数的返回值,如果返回0,DllMmain也返回0;
4、如果它希望输出CRuntimeClass类型的对象或者资源(Resources),则需要提供一个初始化函数来创建一个CDynLinkLibrary对象。并且,有必要把初始化函数输出;
5、使用扩展DLL的MFC应用程序必须有一个从CWinApp派生的类,而且,一般在InitInstance里调用扩展DLL的初始化函数。
扩展DLL的资源转换 我不清楚...
b、Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。
静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。该类DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。输入函数有如下形式:
extern "C" EXPORT YourExportedFunction( );
如果没有extern “C”修饰,输出函数仅仅能从C++代码中调用。
DLL应用程序从CWinApp派生,但没有消息循环。
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换MFC模块状态。
Regular DLL能够被所有支持DLL技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从CWinApp继承下来的类,DllMain函数被MFC所提供,不用自己显式的写出来。
c、Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。它输出的函数仅可以被使用MFC且动态链接到MFC的应用程序使用。可以从MFC继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供MFC或MFC继承类的对象指针。Extension DLL使用MFC的动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。Extension DLLs 和Regular DLLs不一样,它没有一个从CWinApp继承而来的类的对象,所以,你必须为自己DllMain函数添加初始化代码和结束代码。
和规则DLL相比,有以下不同:
1、它没有一个从CWinApp派生的对象;
2、它必须有一个DllMain函数;
3、DllMain调用AfxInitExtensionModule函数,必须检查该函数的返回值,如果返回0,DllMmain也返回0;
4、如果它希望输出CRuntimeClass类型的对象或者资源(Resources),则需要提供一个初始化函数来创建一个CDynLinkLibrary对象。并且,有必要把初始化函数输出;
5、使用扩展DLL的MFC应用程序必须有一个从CWinApp派生的类,而且,一般在InitInstance里调用扩展DLL的初始化函数。
扩展DLL的资源转换 我不清楚...
#11
对不起,我有一点没说清楚:我不能用对话框,我想要的效果是,就像控件一样,主程序只需调用一些函数就可以把它(dll或什么)生成的显示窗口嵌入到主程序的窗体上。
我说一下我原来的做法:用mfc ActiveX做的,根据bmp图形数据绘制的openGL显示窗口,并有工具栏按钮操作窗口图形变换,生成.ocx文件,然后把.ocx拿到主程序处,按添加控件的方法直接就能在主程序窗体上显示了,主程序只调用了一个控件的方法把某些数据传递过去就行了。可是,拿到领导那里不能用,说是他的系统是win7,有一个注册权限的问题。所以才让我改用dll做,要求实现起来跟用ActiveX一样的。
我对dll能否实现上述的要求一点不清楚,现在不知道从那里下手,还请各位帮忙,谢谢回帖的各位!
我说一下我原来的做法:用mfc ActiveX做的,根据bmp图形数据绘制的openGL显示窗口,并有工具栏按钮操作窗口图形变换,生成.ocx文件,然后把.ocx拿到主程序处,按添加控件的方法直接就能在主程序窗体上显示了,主程序只调用了一个控件的方法把某些数据传递过去就行了。可是,拿到领导那里不能用,说是他的系统是win7,有一个注册权限的问题。所以才让我改用dll做,要求实现起来跟用ActiveX一样的。
我对dll能否实现上述的要求一点不清楚,现在不知道从那里下手,还请各位帮忙,谢谢回帖的各位!
#12
楼主最好找一篇文章系统的看看,自己理解下在问