Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588729
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:44:51

rocshaw:AFX_MANAGE_STATE(AfxGetStaticModuleState());
是干什么的,不要行不行。
(发表于2003-2-17 21:04:00)

hww02:你高高手也。
(发表于2003-2-17 23:26:00)

freedk://
// Note!
//
// If this DLL is dynamically linked against the MFC
// DLLs, any functions exported from this DLL which
// call into MFC must have the AFX_MANAGE_STATE macro
// added at the very beginning of the function.
//
// For example:
//
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // normal function body here
// }
//
// It is very important that this macro appear in each
// function, prior to any calls into MFC.  This means that
// it must appear as the first statement within the 
// function, even before any object variable declarations
// as their constructors may generate calls into the MFC
// DLL.
//
// Please see MFC Technical Notes 33 and 58 for additional
// details.
//
(发表于2003-2-18 9:08:00)

yhqxf:AFX_MANAGE_STATE(AfxGetStaticModuleState())
不要不行,不然要报错
(发表于2003-2-18 9:08:00)

lbkbox:freedk:谢谢你的杰作!我是VC初学者想问个问题!
这个语句是什么作用!
typedef void (WINAPI * TESTDLL)();
再一个就是作样在VB中调用这个库!
谢谢了!
(发表于2003-2-18 9:47:00)

lbkbox:这个语句是什么作用!
(*lpproc)();
(发表于2003-2-18 9:51:00)

hulw:typedef void (WINAPI * TESTDLL)();是用来定义一个函数指针
(*lpproc)();当然就是执行那个函数喽。
请翻阅有关C/C++中有关函数指针的概念,便会很容易懂这两个语句的

(发表于2003-2-19 10:13:00)

freedk:vb中的调用:
新建一Modules
加入以下:
Public Declare Sub Show Lib "f:\mfcdll.dll" ()
添加一按钮到窗体,加单击事件与以下代码:
Show
(发表于2003-2-20 15:27:00)

wunyer:如果show function带有参数和返回值,类型都是指向结构的指针Traf_Para*,为什么老是出错
定义如下:
typedef Traf_Para* (WINAPI * dbinface)(Traf_ptr );
函数调用如下:
  ret_traf=(*lpproc)(Trafdata);
dll中调用的函数运行都正常,就是函数结束后返回这个eexe程序的时候出错, 为什么呢????  :(
(发表于2003-2-21 11:05:00)

flying_snail:我下载了你的程序,也照着做了一个像你那样的带对话框的dll,但是我测试的程序用的是文档/视图形式,测试作为一菜单项,编译运行没问题,但我选择那个调用dll菜单项时会报错,但如果我在project->settings里选择Use MFC in a static Library而不是Use MFC in a shared DLL时,运行就没问题,可以正常显示对话框,或者将DLL设置为Use MFC in a static Library也没问题,这是为什么???
(发表于2003-2-21 15:04:00)

peacocker:讲得还是比较清楚了,
而且思路很清晰,
我想问一个问题,
你这个DLL有没有注入到那个TEST程序当中呢??
(发表于2003-2-21 15:43:00)

flying_snail:加入了啊,
(发表于2003-2-21 15:55:00)

flying_snail:我用隐式和显式调用都会出现这个问题
我真搞不懂

(发表于2003-2-21 15:58:00)

flying_snail:怎么没人回答啊?请高手们教教我
(发表于2003-2-23 13:57:00)

applehph:to flying_snail:
也许你没有把mfcdll.dll(在mfcdll工程的debug目录里)拷到后来建的工程的debug目录下

(发表于2003-2-23 21:22:00)

flying_snail:我拷了,它是出现重试,终止,忽略对话框,
(发表于2003-2-24 10:04:00)

xiaoguo:我是这样做的,没有问题
extern "C" __declspec(dllexport) void Show(CWnd *pWnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test(pWnd);
test.DoModal ();
}
////////////////////////////
typedef void (WINAPI * TESTDLL)(CWnd *pWnd);


HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)(AfxGetMainWnd());
FreeLibrary(hmod);


(发表于2003-2-25 10:03:00)

flying_snail:确实可以运行了,我以前show函数都没有加CWnd *pWnd,但在基于对话框的程序中可以不加参数,不会有问题,请问大虾为什么要加这个参数???不胜感激!!!
(发表于2003-2-25 14:39:00)

esong:在VB中怎么调用阿???我按上面的方法试过了,但怎么不能调出对话框???而且我修改你一下SHOW,让它返回一值,如 
          Dim i As Integer
          i = Show
第二句有误!!怎么回事??


(发表于2003-8-15 18:03:00)

天天天天:typedef void (WINAPI * TESTDLL)();
这个是什么意思??可是(*lpproc)();没有使用他呀.
如果不用typedef void (WINAPI * TESTDLL)();
它,代码又怎么写
(发表于2004-9-8 11:37:00)

HiHand:如何将DLL中的对话框以无模式方式调用呢?

因DLL中定义了多个对话框,想让它们同时显示。
(发表于2004-9-13 9:09:00)

lotusangel:我在调用DLL时候向DLL中的对话框传递参数CString 类型
要求DLL中对话框中对CString 进行处理~处理结果正常~
再调用DLL结束后却弹出错误对话框"The value of ESP was not properly saved acroos a function call..."
各位高手~怎么回事啊?
(发表于2004-11-23 16:02:00)

king1912:你的这个方法我也想到了,而且在Dialog中加入任何对话框控件都没问题,但是一插入Active X控件,对话框就弹不出来了,请问这是怎么回事?该怎样正确的插入ocx控件呢?
(发表于2006-10-7 21:32:00)

xiaohulicm:dll中应用ActivX控件问题已经解决.
在DLL资源调用时,在App::InitInstance()中使用:
AfxEnableControlContainer();
::CoInitialize(NULL);
在App::ExitInstance()中使用:
CoUninitialize();
(发表于2007-3-22 14:46:00)

..........................................................................
--------------------next---------------------

阅读(197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~