1,C++建立一个标准DLL
在VC++中new一个Win32 Dynamic-Link Library工程,在建立的工程中添加lib.h及lib.cpp文件,
其中extern "C" int __declspec(dllexport)add(int x, int y);声明函数add为DLL的导出函数。
2,c#中调用
附录A:
c++工程里调用dll
1,LoadLibrary("...dll");加载DLL
2,addFun = (lpAddFun)GetProcAddress(hDll, "add");//lpAddFun addFun; //函数指针 //DLL函数地址获取
3,FreeLibrary(hDll);//释放
附录B:
静态链接库
VC++6.0中new一个名称为libTest的static library工程,并新建lib.h和lib.cpp两个文件
//文件:lib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
标准Turbo C2.0中的C库函数(我们用来的scanf、printf、memcpy、strcpy等)就来自这种静态库。
静态链接库的调用
#include <stdio.h>
#include "../lib.h"
#pragma comment( lib, "..//debug//libTest.lib" ) //指定与静态库一起连接
int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
}