学习了一下,中间还是有不少细节要注意,特此记录
一:生成DLL
1:创建DLL工程
- #include
- using
namespace std; - #include
"MyDLL.h" -
- int
Add( int&a, int&b) - {
-
return a+b; - }
- #pragma
once -
- extern
"C" __declspec(dllexport) int Add( int&a, int&b);
注意:如果在已存在的工程上创建dll或者lib,不需要修改工程,只要把工程属性里面的general->project default->configure type修改为lib或者dll,就可以生成lib文件或者dll文件了
二:调用DLL
新建两个文件testMyDLL.cpp和testMyDLL.h
testMyDLL.cpp内容如下:
- #include
"testMyDLL.h" - #pragma
comment(lib,"..\\debug\\MyDLL.lib") -
- #include
- using
namespace std; -
- int
main() - {
-
int a =3; -
int b =2; -
cout<<Add(a,b)<<endl; -
-
getchar(); -
- }
testMyDLL.h内容如下:
- #pragma
once -
- extern
"C" _declspec(dllexport) int Add( int&a, int&b);
这里需要注意testMyDLL.cpp文件中调用lib的这句话:
- #pragma
comment(lib,"..\\debug\\MyDLL.lib")
这里需要指明lib所在的文件夹,当然我们也可以在生成dll的MyDLL工程中,指定lib和dll文件的输出路径,直接到testMyDLL工程下。
上例中的testMyDLL.h也可以使原来创建的时候那个头文件,由此供外部调用
注意:如果只有dll文件,那么必须在程序里面调用LoadLibrary()函数才能使用,如果有lib文件,那么有两种方式可以马上进行调用:
(1). Dependencies (推荐使用,要求有lib源代码)
(2). 直接将lib添加到需要用的工程中(不太推荐,lib没能统一管理)
(3).
(4).