DLL的创建与使用
先给出Demo连接,具体的使用方法都在这里,因为论坛对图片的限制所以无法发到这里。https://pan.baidu.com/s/1cKxJae
具体方法,新建一个DLL工程,写入以下代码。
extern "C" _declspec(dllexport)int test(int a,int b)
{
return a+b;
}
如果不看extern "C" _declspec(dllexport)这一句,后面的Test就是一个普通的函数。
加上extern "C" _declspec(dllexport)编译运行就可以发现编译出了LIB和DLL文件。
这两个文件就是我们需要使用的文件了,再新建一个工程,把LIB复制到工程目录下,DLL复制到exe目录下。
//引入链接库
#pragma comment(lib,"TestDll.lib")
//声明函数
extern "C" _declspec(dllexport)int test(int,int);
int main(int argc, char* argv[])
{
printf("%d\n",test(1,2));
return 0;
}
这就是调用链接库的方法,但是这种调用方式是静态调用,必须要映入LIB文件而且DLL必须与exe在同一个目录下。
还可以使用动态调用的方式,使用方法如下:
typedef int(__cdecl* FuncTest)(int,int);
int main(int argc, char* argv[])
{
HMODULE hModule = LoadLibrary(TEXT("TestDll.dll"));
if(NULL != hModule)
{
FuncTest test = (FuncTest)GetProcAddress(hModule,TEXT("test"));
if(NULL != test)
{
printf("%d\n",test(1,2));
}
FreeLibrary(hModule);
}
return 0;
}
使用动态调用的方式,DLL可以放到任意目录下。 {:10_256:}{:10_256:}这个技术对于学编程来说相当重要
页:
[1]