博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DLL中导出ANSI和UNICODE函数
阅读量:4341 次
发布时间:2019-06-07

本文共 1225 字,大约阅读时间需要 4 分钟。

 

模仿window中的DLL导出ANSI和UNICODE版本的函数,使用UNICODE宏来控制使用哪个版本;

在函数实际的执行代码UNICODE版本中,在ANSI函数的版本中只做参数的转换,及ANSI字符串转UNICODE字符串,然后调用UNICODE版本的函数。 

 

 

 0、DLL头文件

 

#include 
#ifndef _ICAL_H_#define _ICAL_H_#ifdef DLL_EXPORT_IMP #define DLL_EXPORT extern "C" __declspec(dllexport)#else #define DLL_EXPORT extern "C" __declspec(dllimport)#endifDLL_EXPORT int Add(int a, int b);DLL_EXPORT void ShowA(LPCSTR lpStr);DLL_EXPORT void ShowW(LPCWSTR lpStr);#ifdef _UNICODE #define Show ShowW#else #define Show ShowA#endif #endif

 

 

 

 1、DLL导出函数的实现

 

#include "stdafx.h"#define   DLL_EXPORT_IMP #include "ICal.h" #include 
int Add(int a, int b){ return 0;}void ShowW( LPCWSTR lpStr ){ std::wcout << lpStr << std::endl;} void ShowA( LPCSTR lpStr ){ if (! lpStr) return; int nCntOfChs = MultiByteToWideChar(CP_ACP, 0, lpStr,-1, NULL, 0); LPWSTR lpwStr = new WCHAR[nCntOfChs](); if (! lpwStr) return; nCntOfChs = MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpwStr, nCntOfChs); ShowW(lpwStr); delete[] lpwStr; lpwStr = NULL;}

  

 

 

 2、使用DLL中的导出函数

 

Show(TEXT("hello T world"));    ShowA("hello A world");    ShowW(L"hello W world");

 

  

 

  

 

转载于:https://www.cnblogs.com/cuish/p/4509638.html

你可能感兴趣的文章
drf视图组件、认证组件
查看>>
Python_正则表达式
查看>>
[USACO08NOV]时间管理Time Management(排序,贪心)
查看>>
Hybrid App开发设计与实现
查看>>
Fedora14 mount出现错误时解决办法【亲测有效】
查看>>
实验四
查看>>
穷人和富人 (修改版)
查看>>
H+关闭tab框
查看>>
gb2312
查看>>
sql 常见操作
查看>>
Zookeeper如何从官网下载和安装
查看>>
Web服务开发的相关教程(不断更新中…)
查看>>
《道德经》全文
查看>>
XCODE4.3.2编程-HelloWorld
查看>>
always on 完整方案
查看>>
python 网络编程
查看>>
Entity Framework快速入门笔记第四篇—ModelFirst
查看>>
自定义的命民空间在其他程序集里无法调用
查看>>
[poj 2773] Happy 2006 解题报告 (二分答案+容斥原理)
查看>>
Datatable 插入一行数据到第一行
查看>>