问题一:
有两个工程:主程序(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).地址空间的不同会让释放出错.
参考自下文: