社区
C++ 语言
帖子详情
在VC6中怎么加载dll
ziqingyexue
2012-05-23 03:38:26
在VC6中怎么加载dll???
...全文
564
8
打赏
收藏
在VC6中怎么加载dll
在VC6中怎么加载dll???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ziqingyexue
2012-05-25
打赏
举报
回复
我要的是加载的操作流程 大虾门这样的回答对我没有用啊
赵4老师
2012-05-25
打赏
举报
回复
C:\MSVC20\SAMPLES\win32\simpldll\LOADTEST.C
VC++2.0 MSVC20 "Microsoft Visual C++ Version 2.0" "1994 Microsoft Corporation"
http://download.csdn.net/detail/zhao4zhong1/3253384
kyding
2012-05-25
打赏
举报
回复
我以前留得一些说明,给你看一下
//编译加载链接库一般有3种方法
//1.编译加载静态链接库
//2.以传统的.h文件的方式编译加载动态链接库
//3.以.def文件的方式编译加载动态链接库
//还想强调一下如何用perl编译和加载c++的dll库。
/*查看工具为v++下面的Depends程序
Depends主要要看有没提供出口函数,
depends如果用来查看exe文件的话,还可以看到该exe文件都
加载了哪些dll
*/
/*
静态加载方法缺点较多,不建议使用,这里只介绍动态加载的方法
*/
/*动态加载,以一个简单的add函数为例*/
//lib.h
#ifndef LIB_H
#define LIB_H
extern "C"/*导出函数为标准C接口*/ int/*函数返回值*/ __declspec(dllexport)/*导出dll*/ add(int ,int )/*函数名称和参数类型*/;
#endif
//lib.cpp
#include "lib.h"
int add(int x, int y) {
return x+y;
}
/*以上两个文件lib.h和lib.cpp就可以编译成一个dll文件了,编译完成后用depends看一下编译后的dll是不是有
add函数的输出接口,如果有应该就是编译成功了*/
//下面我们来看一下是如何加载上面编译出来的dll的
//lib_call.cpp
#include <windows.h>
#include <stdio.h>
typedef int (*lpAddFun) (int ,int );//定义与add函数返回值和参数类型一致的函数指针类型,lpAddFun
int main(int argc, char* argv[]) {
HINSTANCE hdll;//dll句柄
hDll = LoadLibrary("test.dll");//test.dll为上面编译出来的dll名称
lpAddFun addFun;//实例化一个函数指针
if(hDll!=NULL) {//加载dll成功
addFun = (lpAddFun)GetProcAddress(hDll,"add");//导出函数获取
}
if(addFun!=NULL) {//导出函数获取成功
int result = addFun(2,3);//使用导出函数
printf("%s",result);//输出结果
}
FreeLibrary(hDll);//释放动态链接库
return 0;
}
yuanpeirong
2012-05-25
打赏
举报
回复
去看一下VC++深入详解,不但说了怎么加载,还说了怎么自己编写dll
一叶之舟
2012-05-23
打赏
举报
回复
LoadLibrary加载动态库
GetProcessAddress获取动态库中的函数指针。
如
HANDLE h=LoadLibrary("mydll.dll");
if(h==0)
return;
fun=GetProcessAddress(h,"myfun");
cbzjzsb123
2012-05-23
打赏
举报
回复
隐式加载或显式加载
隐式加载就是包含头文件和pragma lib文件
显式加载就是LoadLibrary和GetProcessAddress
ouyh12345
2012-05-23
打赏
举报
回复
隐式加载或显式加载
隐式加载就是包含头文件和pragma lib文件
显式加载就是LoadLibrary和GetProcessAddress
majia2011
2012-05-23
打赏
举报
回复
vc加载dll?这是要做什么?
VC6
.0 生成mfc
dll
无法
加载
文章详细记录了在使用VS2013和
VC6
.0生成
DLL
过程
中
遇到的
加载
问题,以及最终通过修改调试设置解决的方法。特别指出在
VC6
.0下使用win32 debug出的
dll
可用,但用MFC则不可用的困惑,并解释了为何VS2013 mfc共享
dll
在debug环境下可用而在
VC6
.0下不可用的现象。
超强补丁技术_让EXE启动时自动
加载
你的
DLL
(含
VC6
写的
DLL
源码模版)
本文介绍了一种在无源代码情况下使EXE
加载
指定
DLL
的方法,适用于Win10、Win7及XP等系统,该技术提高了程序的安全性和简约化,并提供了一个
VC6
编写的HOOK类技术模板。
VC6
静态与动态
加载
Dll
[示例代码]
本文介绍了一个简单的
DLL
项目案例,展示了如何在
DLL
文件
中
声明和实现函数,并通过两种方式在EXE文件
中
进行调用:静态链接和动态
加载
。静态链接通过包含头文件和链接库文件实现,而动态
加载
则通过LoadLibrary和GetProcAddress函数实现。
【转】
VC6
.0程序在win7下运行出现“NMSQL.
dll
必需的文件不能
加载
”的提示
本文针对
VC6
.0开发的程序在Windows 7系统下运行时提示“NMSQL.
dll
必需的文件不能
加载
”问题,分析其根本原因在于Win7缺少
VC6
.0依赖的旧版SQL Server客户端组件(如MDAC、SQL Server 2000客户端工具)及兼容性配置缺失。提出解决方案包括安装SQL Server 2000客户端、注册NMSQL.
dll
、设置程序兼容性模式(Windows XP SP3)及关闭UAC或以管理员身份运行。
VS2015项目
中
,MFC内存
中
调用
DLL
函数(
VC6
生成的示例
DLL
)
本文介绍用
VC6
生成
DLL
,用WinHex获取
DLL
全部内容,以及在VC2015项目
中
加载
内存里的
DLL
函数并调用的示例。详细说明了VC++6.0生成示例
DLL
项目、用WinHex复制
DLL
数据、建立VC2015示例工程调用CMemLoad
Dll
类源码的步骤,还给出了CMemLoad
Dll
类源码。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章