社区
进程/线程/DLL
帖子详情
请问怎样调用DLL,LIB文件啊???
karonbf
2004-05-09 05:40:24
老师给了个用VC5.0写的.DLL,.LIB,.H和.BAS文件我,请问怎样在VC.NET或者VB.NET上调用啊~~~~~
...全文
90
4
打赏
收藏
请问怎样调用DLL,LIB文件啊???
老师给了个用VC5.0写的.DLL,.LIB,.H和.BAS文件我,请问怎样在VC.NET或者VB.NET上调用啊~~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vcforever
2004-05-09
打赏
举报
回复
1、隐式调用的方法
将你的dll的头文件包含到主程序中#include "XXX.h"
然后再将该DLL在编译时生成的.lib文件包含到工程中,在主程序中添加#pragma comment(lib,XXX.lib)
然后就可以使用DLL中的show导出函数了
包含DLL的.h和.lib文件也可以通过下面的方式设置
tools->option->Directories中设置要包含的.h和.lib的路径,然后重新编译程序就可以了
2、显示加载DLL
使用LoadLibrary加载DLL,然后用typedef定义函数指针,使用GetProcAddress函数获得导出函数的地址,将该地址赋值给前面定义的函数指针,然后通过这个函数指针来调用导出函数
如:
HINSTANCE hInst = LoadLibrary("DLL文件名称");
if(hInst)
{ //定义函数指针
typedef 函数返回类型 (WINAPI *MYFUNC)(函数参数);
MYFUNC fun = NULL;
fun=(MYFUNC)GetProcAddress(hInst, "导出函数名称");
if(fun)
{
fun(函数参数);//通过函数指针调用导出函数
}
FreeLibrary(hInst); //释放DLL资源
}
zhangnanonnet
2004-05-09
打赏
举报
回复
只需要DLL就可以调用
将DLL放在EXE目录下
比如:
AnalyzeSMS.dll中的函数原型
extern "C" BOOL PASCAL EXPORT AnalyzeGameSMS(char * sms, // IN 短信内容
char * content, // OUT 回复内容
char * record, // OUT 中奖记录(没有为空字符串)
char * smstype, // OUT 短信(游戏)类型
char * count) // OUT 积分
你可以这样调用
BOOL bRet;
typedef BOOL (far pascal * SQRTPROC2)(char *, char *, char *, char *, char *);
HINSTANCE hInstance;
SQRTPROC2 pFunction;
VERIFY(hInstance=::LoadLibrary("AnalyzeSMS.dll"));
VERIFY(pFunction=(SQRTPROC2)::GetProcAddress(hInstance,"AnalyzeGameSMS"));
bRet = pFunction(sms, content, record, smstype, count);
return bRet;
aspnetwuxueyou
2004-05-09
打赏
举报
回复
// use import lib ( dynamic linking) or static lib ( static linking)
#include <xxx.h>
#pragma comment(lib, "comsupp.lib")
// dynamic linking
LoadLibrary("***.dll")
GetProcAddress
code8238
2004-05-09
打赏
举报
回复
得有文档啊!你得知道个动态链接库是干什么的啊!
在你的工程里写上
#include "XXX.H"
#pragma comment(lib,"XXX.lib")
MingW VC 之.a .
lib
.
dll
.def 关系
MSVC vs. MinGW 之 (
lib
,
dll
,def,obj,exe) vs (a,
dll
,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o gcc -c a.c c -> exe gcc a.c
lib
s.o -o a.exe (从主程序a.c,附加
lib
s,生成a.exe) o -> exe gcc a.o b.o ... -o main.exe c ->
dll
,def,a gcc a.c -shared -o a.
dll
-Wl,--output-def,a.def,--out-imp
lib
,
lib
a.a a ->
dll
a2
dll
lib
a.a
dll
-> a:
dll
tool --
dll
name a.
dll
--def a.def --output-
lib
lib
a.a (需要def
文件
) a -> def: dumpbin /exports
lib
.a >
lib
.def (在windows上
调用
,def需要修改)
dll
-> def : pexports a.
dll
-o > a.def (这里的-o是指给函数标序号)
lib
-> def : reimp -d a.
lib
lib
-> a: (for __cdecl functions in most case) reimp a.
lib
; (for __stdcall functions) MSVC: c ->
lib
cl /LD a.c (注意已经定义了export列表) c ->
dll
cl /LD a.c c -> obj cl /c a.c c -> exe cl a.c /out:a.exe
dll
->
lib
lib
/machine:ix86 /def:a.def /out:a.
lib
(需要def
文件
) obj ->
lib
lib
a.obj b.obj... /out:my
lib
.
lib
dll
->def DUMPBIN a.
dll
/EXPORTS /OUT:a.def (生成的def需要做修正)
lib
->def reimp -d a.
lib
(这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。
dll
和exe都是PE
文件
,所以可以使用pexports.
lib
和a是静态库
文件
,都是归档类型,不是PE格式。所以不能使用pexports.
dll
可以使用
dll
tool.
lib
可以使用
lib
, 和reimp(
lib
->a工具) 所有的bin
文件
,包括
dll
,exe,
lib
,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MSVC_and_MinGW_
DLL
s http://oldwiki.mingw.org/index.php/CreateImport
Lib
raries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.cpp #include #include #include "my
lib
.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. my
lib
.cpp #include #include #include "my
lib
.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. my
lib
.h #define EXPORT __declspec(
dll
和
lib
混合
调用
主要是学习如何使用
lib
和
dll
的,尤其是在
DLL
中
调用
lib
,原来的
lib
文件
已经被包含
Windows进程常用
DLL
模块注入技术
课程结合多种Windows进程常用
DLL
注入技术。远程线程注入APC注入,异步
调用
过程,向目标线程插入待执行任务从而完成注入。窗口消息注入,指定窗口进程注入,与全局钩子注入类似。环境块注入,获取进程上下文信息,直接性修改程序执行流程完成注入。进程入口点注入,在程序初始化的时机前将
dll
模块
文件
注入至目标主线程。进程调试级注入,涉及调试器相关功能
调用
知识点
dll
模块重定位内存注入,模拟操作系统加载PE
文件
方式,直接将
dll
文件
内存数据写入目标进程并执行。导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入表、增加导出函数,修复表项数据等。内核驱动级
Dll
模块注入技术,内核驱动入门扩展。
qt
调用
库函数(
DLL
、
LIB
)
qt
调用
外部库函数 test
dll
是
调用
库的工程 my
lib
和my
dll
为两个库 先编译两个库,编译后将库
文件
导入
调用
obj
文件
中的函数.zipc语言
调用
.
lib
,.
dll
,.a,.so中的函数不稀奇,可是你听说过
调用
.obj
文件
中的函数吗?
c语言
调用
.
lib
,.
dll
,.a,.so中的函数不稀奇,可是你知道怎么
调用
目标
文件
.obj
文件
中的函数吗?
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章