各位好,
我是一个正宗的菜鸟,所以问一些很基础的问题:
1。我想知道,生成动态链接库的时候,用函数方法定义函数和用类写成员函数在应用的时候有什么区别
2。我还是有点糊涂,就是如果我的VC上用了滑块来选择从-10-10大小的音量的话,那么我给滑块关联了一个变量m_Rate
那么,我在(dll)里将如何处理它?万一我再次调用这个函数的话我用的不是滑块而是按钮怎么办?
3待更新中
我是一个正宗的菜鸟,所以问一些很基础的问题:
1。我想知道,生成动态链接库的时候,用函数方法定义函数和用类写成员函数在应用的时候有什么区别
2。我还是有点糊涂,就是如果我的VC上用了滑块来选择从-10-10大小的音量的话,那么我给滑块关联了一个变量m_Rate
那么,我在(dll)里将如何处理它?万一我再次调用这个函数的话我用的不是滑块而是按钮怎么办?
3待更新中
解决方案 »
- VC编译错误: fatal error C1189:WINDOWS.H already included. MFC apps must not #include <windows.h>。多谢!!
- 这个pCmdUI类的ENABLE到底是做什么的?
- 一个关于进程外COM的问题
- 怎样SendMessage?
- 如何收藏文档里的文章?
- 在VC中如何实现保存为DXF文件的格式
- MFC的LIST Control显示图标问题
- 类的函数调用问题
- 30分求助!我的VISUAL STUDIO6。0在重装之后,编程时没法自动给出提示,为何?具体见正文!!!
- ***** 难倒一批人 *****
- 关于动态内存绘图问题
- VS2008 MFC如何添加一个基本的类?
2.m_Rate 作为参数进dll里的处理函数里呀
3.待回答 呵呵,希望能帮到你
2.dll的接口函数参数可以传递对话框指针等,然后用这个指针调用控件
首先感谢你的回答。
[size=14px]现在继续更新后面的问题,各位,100分不是白拿的哦。[/size]
3:如果我的.dll(暂且称之为mydll)里还用到了其他的.dll(暂且成为usedll),即mydll里嵌套使用 了usedll,那么我在生成mydll时怎么才能用usedll(因为我的代码里用usedll的函数,而且是必不可少的)?是否可以将usedll的头文件加到mydll工程里,不用管mydll.cpp里的代码?
4:如果mydll成功生成了,那么我在测试它是否好用的时候,除了要链接mydll外,是否还要链接usedll?如果mydll是规则的动态链接,而usedll是静态链接,对我的测试程序是否有影响?
5:编译mydll时遇到了这个错误----WINDOWS.H already included MFC Apps must not #include<Windows.h>,请问如何解决?
6:待更新中... ...
#ifdef OS_WINDOWS
#if defined OSRES_EXPORTS
#define OSLIB_DLL_LINK _declspec(dllexport)
#else
#define OSLIB_DLL_LINK _declspec(dllimport)
#endif
#ifdef OSLIB_STATIC_LINK
#define OSLIB_DLL
#else
#define OSLIB_DLL OSLIB_DLL_LINK
#endif
#else
#define OSLIB_DLL
#endif
OSLIB_DLL void *safe_malloc (INT32 size); /*申请空间并自动清空*/
这里OSLIB_DLL表示这个函数在dll文件中的接口被输出给其它模块用。
如果不想采用这种方式,可以在def文件中增加各个需要输出的函数名字。所有输出的函数接口链接关系在生成的lib文件中,而执行代码在dll文件中(这两个文件应该在你的debug或release目录中,提供给其它项目用的h文件,需要自己整理好)。使用是,你在使用这个dll的项目中包含lib文件即可,运行时把dll放在运行目录或者windows系统目录即可。为了兼容c和c++,建议对函数名字加上C的定义:
#ifdef __cplusplus
extern "C"
{
#endifOSLIB_DLL void *safe_malloc (INT32 size); /*申请空间并自动清空*/#ifdef __cplusplus
}
#endif