0
点赞
收藏
分享

微信扫一扫

MFC学习笔记12 创建动态DLL库

创建

新建 win32 dll 项目。
MFC学习笔记12 创建动态DLL库_#include

添加项 - 新建 头文件 : 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;
}

生成项目:
MFC学习笔记12 创建动态DLL库_mfc_02

新建 windows console项目,引用创建的dll项目:
MFC学习笔记12 创建动态DLL库_#include_03

如果要引用 动态链接库的头文件,点击:属性页-配置属性,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;
}

运行结果:
MFC学习笔记12 创建动态DLL库_mfc_04


举报

相关推荐

0 条评论