社区
进程/线程/DLL
帖子详情
客户程序中显式加载dll时,如何使用dll中导出的类
mengxiang2003
2005-04-10 08:00:21
客户程序中显式加载dll时,如何使用dll中导出的类。
隐士加载时由于客户端程序可以利用dll的头文件,所以可以直接用类声明一个对象,然后再调用类中的方法。可是动态加载时没有头文件阿,怎么使用dll提供的类呢
...全文
233
10
打赏
收藏
客户程序中显式加载dll时,如何使用dll中导出的类
客户程序中显式加载dll时,如何使用dll中导出的类。 隐士加载时由于客户端程序可以利用dll的头文件,所以可以直接用类声明一个对象,然后再调用类中的方法。可是动态加载时没有头文件阿,怎么使用dll提供的类呢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mfmmfc
2005-04-13
打赏
举报
回复
tetian(tetian) 写得不错,
蹭分!
axiaowin
2005-04-12
打赏
举报
回复
需要包含头文件,
tetian
2005-04-11
打赏
举报
回复
写一个.def文件,里面装上这样一个涵数的symbol:CreateFaxPbUtlInstance
void WINAPI CreateFaxPbUtlInstance(LPCTSTR lpszClsName, void **pClass)
{
CString strName = lpszClsName;
//if(strName.CompareNoCase("CDispItemDlg") == 0)
if(strName.CompareNoCase("CFaxPbUtlApp") == 0)
{
AfxOleInit();
//CDispItemDlg *pCls = new CDispItemDlg;
CFaxPbUtlApp *pCls = new CFaxPbUtlApp() ;
*pClass = pCls;
}
}
在调用这个dll涵数的摸块中:
typedef void(WINAPI *PCrtInstance)(LPCTSTR, void **);
PCrtInstance pCrtInstance;
HMODULE hMod = LoadLibrary(TEXT("FaxPbUtlTest.dll"));
if (hMod == NULL)
{
return;
}
pCrtInstance = (PCrtInstance)GetProcAddress(hMod, TEXT("CreateFaxPbUtlInstance"));
if (NULL == pCrtInstance)
{
return;
}
void *pCls ;
//CActReport AR ;
pCrtInstance("CFaxPbUtlApp", &pCls);
CFaxPbUtlApp* pDspDlg = (CFaxPbUtlApp*)pCls;
就可以了.
oyljerry
2005-04-10
打赏
举报
回复
显示加载也需要头文件的
masterz
2005-04-10
打赏
举报
回复
http://www.codeguru.com/Cpp/W-P/dll/importexportissues/article.php/c123/
Explicitly Linking to Classes in DLL's
flyelf
2005-04-10
打赏
举报
回复
也可以采用头文件,只不过该头文件中的类是一个纯抽象类
隐式调用
dll
和显式调用
dll
当编译器处理源代码
时
,如果遇到对
DLL
中
函数的引用,它会将这些引用与
DLL
导出
表
中
的相应函数名匹配,并将必要的信息嵌入到可执行文件
中
。这使得程序在运行
时
无需再查找
DLL
的
导出
函数,因为所有信息已经在程序
中
确定...
显式链接
DLL
的实例
1. **
加载
DLL
**:在程序运行
时
,
使用
`LoadLibrary`函数
加载
DLL
。这个函数会查找指定的
DLL
文件,并将其映射到进程的地址空间。如果成功,它将返回一个模块句柄,可以用于后续操作。 2. **获取函数指针**:有了模块...
QT创建与调用
Dll
方法(包括
类
成员)--显式调用.rar
3.
使用
QLibrary
加载
DLL
。在需要调用
DLL
的地方,先
加载
库,然后获取
类
的指针,最后调用方法。例如: ```cpp QLibrary lib("path_to_
dll
.
dll
"); if (!lib.load()) { qCritical() (); return -1; } typedef ...
vc2008动态链接库
使用
(视频) 显式导入
dll
2.
使用
`LoadLibrary()`和`GetProcAddress()`:在运行
时
动态
加载
DLL
,并通过函数指针调用
DLL
中
的函数。`LoadLibrary()`用于
加载
DLL
,`GetProcAddress()`用于获取函数地址。 三、步骤详解 1. 创建
DLL
项目:在VC2008...
使用
extern "C"改善显式调用
dll
的例子 (c++)
- 在主程序
中
,我们需要显式
加载
DLL
并找到
导出
的函数地址。首先,
使用
`LoadLibrary()`函数
加载
DLL
,然后
使用
`GetProcAddress()`获取函数指针。例如: ```cpp HINSTANCE
dll
Handle = LoadLibrary("Create
DLL
.
dll
")...
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章