接上篇《VS生成C++动态链接库DLL》,能够生成DLL,且能调用后,遇到一个问题,即在DLL程序中定义了一些全局变量,应用程序需要使用,本以为可以直接使用,没想到,还是需要设置才可以:
C++ 全局变量被自身文件/项目内其他文件/动态链接库(DLL)之外文件使用_c++使用动态库中的全局变量-CSDN博客
这个亲测是对的。
但是有个奇怪的地方:
在调用程序中查看这些全局变量,却显示未定义!为啥明明程序中可以使用却看不到定义呢???
而且,这些全局变量还是可以修改的:
main函数改为:
int main()
{
//打印出 Hello World!
printf("%s", cTest1); //直接使用全局变量cTest1
char cTest3[] = "How are you?\n";
memcpy(cTest2,cTest3,sizeof(cTest3));
//打印出 How are you?
print_test();
return 0;
}
但还是看不到cTest1 cTest2的定义。只有cTest3的定义:
但是,有个好消息是,虽然看不到这些全局变量的定义,但是却不影响使用,使用时不受任何限制,比如各种运算,改变都可以。