创建
新建 win32 dll 项目。
添加项 - 新建 头文件 : SimpleDLL.h
添加项 - 新建 CPP文件: SimpleDLL.cpp
SimpleDLL.h
#pragma once;
#ifdef DLL_IMPLEMENT
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
DLL_API int add(int x,int y);
DLL_API const wchar_t* getPlayUrl(const wchar_t* mgrIp,long mgrPort,long materialId);
DLL_API const char* getUrl(const char* mgrIp,long mgrPort,long materialId);
SimpleDLL.cpp
// 注意此处的宏定义需要写在#include "SimpleDLL.h" 之前
// 以完成在dll项目内部使用__declspec(dllexport)导出
// 在dll项目外部使用时,用__declspec(dllimport)导入
#define DLL_IMPLEMENT
#include "SimpleDLL.h"
#include <Windows.h>
#include <intrin.h>
#include <stdlib.h>
#include <string.h>
int DLL_API add(int x,int y){
return x+y;
}
DLL_API const wchar_t* getPlayUrl(const wchar_t* mgrIp,long mgrPort,long materialId)
{
static wchar_t url[260] = {0};
wcscpy_s(url,L"http://中文");
wcscat_s(url,mgrIp);
wcscat_s(url,L":");
wchar_t szPort[20] = {0};
_ltow_s(mgrPort,szPort,10);
wcscat_s(url,szPort);
return url;
}
DLL_API const char* getUrl(const char* mgrIp,long mgrPort,long materialId)
{
static char url[260]={0};
strcpy_s(url,"http://中文");
strcat_s(url,mgrIp);
strcat_s(url,":");
char szPort[20] = {0};
_ltoa_s(mgrPort,szPort,10);
strcat_s(url,szPort);
return url;
}
生成项目:
新建 windows console项目,引用创建的dll项目:
如果要引用 动态链接库的头文件,点击:属性页-配置属性,c/c++节点,选择常规-附加包含目录,输入上面头文件所在目录 。
代码:
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "SimpleDLL.h"
int _tmain(int argc, _TCHAR* argv[])
{
int a = 1;
int b = 2;
int c = add(a,b);
printf("%d + %d = %d\n", a, b, c);
getchar();
return 0;
}
运行结果: