在dll定义了一个导出类
EXPORT class testclass
{
public:
testclass();
virtual ~testclass();
public:
int addtest(int x,int y);
};
请问在exe中应该如何调用?
假如高手有实例,可以给我一个实例吗?
EXPORT class testclass
{
public:
testclass();
virtual ~testclass();
public:
int addtest(int x,int y);
};
请问在exe中应该如何调用?
假如高手有实例,可以给我一个实例吗?
解决方案 »
- MFC的文件操作
- 如何档掉右下脚pop_up消息
- MFC在WinCE开发过程中的问题
- 没分了,问下如何让datagrid单元格进入编辑状态(不通过鼠标)
- 头文件包含的问题
- CSplitterWnd中隐藏分割条的问题
- 关于SearchHooks的运行问题!明天就要回校了!!请高手帮忙解决!!
- 哪位大侠知道木子版QQ中的IPSearcher.Dll中函数的用法?
- 关于使用ODBC检索MS SQL Server中的IMAGE字段的问题!
- 同样的写在ONSHOWWINDOW里,在DIALOG里可以到FORMVIEW里报错!应该写在哪里!
- 关于Invalidate函数的问题??高手请进!
- CFileDialog的记忆路径如何在选择文件前得到?
定义一份头文件同时给DLL、EXE使用#if !defined HCLASS_H
#define HCLASS_Hclass MY_EXT_CLASS CHClass
{
public:
CHClass();
virtual ~CHClass();
void PopMessageBox(CString strOutput);
};#endif
在DLL中定义:MY_EXT_CLASS AFX_CLASS_EXPORT
在EXE中定义:MY_EXT_CLASS AFX_CLASS_IMPORT
在EXE文件中包含该类的头文件,声明该类对象,就可以使用了。
比如定义一个共用的头文件
#ifndef CIRCLE_H
#define CIRCLE_H
#ifdef DLL_FILE
class _declspec(dllexport) circle //导出类circle
#else
class _declspec(dllimport) circle //导入类circle
#endif
{
public:
void SetCentre(const point ¢rePoint);
void SetRadius(float r);
float GetGirth();
float GetArea();
circle();
private:
float radius;
point centre;
};#endif
测试Dll服务端(dll)的修改是否会影响客户端(exe)1、加注释——不影响客户端,客户端不需要重编译2、加函数——不影响客户端,客户端不需要重编译3、修改被调用函数的实现——不影响客户端,客户端不需要重编译4、修改被调用函数的定义,加入默认参数——影响客户端。客户端需要重编译!5、修改被调用函数的定义,加入非默认参数——影响客户端。客户端需要重编译!
class _declspec(dllexport) circle //导出类circle
#else
class _declspec(dllimport) circle //导入类circle
#endif加入这个以后,就可以共用一个h文件了,dll中定义了DLL_FILE宏,所以为export,exe中未定义DLL_FILE,所以为import
......