dll用法及小结

本文详细介绍了如何从一个工程访问另一个工程中的变量,包括lib工程和dll工程的情况,并强调了DLL中的全局变量在不同进程中的表现以及内存管理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题一:

有两个工程:主程序(exe工程)A,lib工程B.工程A如何访问工程B里的变量exp?

解:

1.在工程B里定义exp,如

int exp;

2.在工程A里声明exp,如

extern int exp;

3.程序代码里访问exp,如

int a = exp;

4.在工程A链接的时候将工程B生成的lib作为输入.

5.调试A工程

 

问题二:

有两个工程:主程序(exe工程)A,dll工程B.工程A如何访问工程B里的变量exp?

1.在工程B里定义exp,如

__declspec( dllexport ) int exp;

2.在工程A里声明exp,如

__declspec( dllimport) int exp;

3.程序代码里访问exp,如

int a = exp;

4.设置A工程依赖于B工程

5.调试A工程

 

以下是关于dll的重要信息

1.一旦DLL的文件映像被映射到调用进程的地址空间中,DLL的代码和数据看上去就像恰巧是在进程的地址空间中的额外代码和数据一样。

2.多个进程加载dll互不干扰

3.dll里的全局变量在多个进程里有各自的副本,独立行事.

4.不可在dll内分配内存(比如malloc),而在dll外释放它(比如free).地址空间的不同会让释放出错.

 

参考自下文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值