在开发PC桌面程序时经常会用到extension dll,因为它可以导出类,这样很便于系统开发和集成,但用在PPC上,和PC机还是有一定差别的。
1。创建Extension DLL
File->New->Project->MFC Smart Device Dll->MFC extension Dll.
建好工程后,新增一个类,如
class  CTheDll : public CWnd
{
 DECLARE_DYNAMIC(CTheDll)

public:
 CTheDll();
 virtual ~CTheDll();

protected:
 DECLARE_MESSAGE_MAP()
public:
 int AddInteger(int a,int b);//增加一个函数,并实现
};
实现新增的函数后,在类前加 AFX_EXT_CLASS。变为:
class AFX_EXT_CLASS CTheDll : public CWnd
{
 DECLARE_DYNAMIC(CTheDll)

public:
 CTheDll();
 virtual ~CTheDll();

protected:
 DECLARE_MESSAGE_MAP()
public:
 int AddInteger(int a,int b);
};
完成后编译。将编译好的*.lib,*.h文件拷到测试程序文件夹下。
在测试程序中调用AddInteger();
这时可以调试程序了,测试程序编译不会出错,但运行时报“Unable to start pragma....”。
将dll,拷到程序.exe所在的文件。
2。差异:
PC机上,一般开发程序默认为动态加载dll,而PPC默认为静态加载,所以就会出现上面出现的问题。要是不想出现这样的问题,就一定在开发时,选为use MFC in a shared Dll,而不是use MFC in a static library.

posted on 2007-05-08 19:40  小镇  阅读(1654)  评论(0编辑  收藏  举报