none
怎么在一个Dll里同时导出Unicode编码和多字符节字符集编码的函数? RRS feed

  • 问题

  • 同一个系统DLL里有很多都有两个版本的函数,如Kernel32.dll里有CreateProcessA和CreateProcessW,我们用的时候用CreateProcess就行,因为WinBase.h中有如下定义:

    #ifdef UNICODE
    #define CreateProcess  CreateProcessW
    #else
    #define CreateProcess  CreateProcessA
    #endif // !UNICODE

    但是是不是要写两份代码,然后导出两个函数?这样是不是太麻烦了?

    2013年2月28日 7:58

全部回复

  • 没听懂你说的两份代码神马意思。这个是说要是你定义了UNICODE就用CreateProcessW,反之用另一个。

    Reply, then visible.

    2013年3月4日 8:31
  • 如果你自己写类似的库,可以写一个Multibyte的FunctionA,在写一个Unicode的FunctionW。不过FunctionW只需要用一个字符转换的函数转化一下,再Call实现功能的FunctionA就好。
    • 已建议为答案 Xu Han 2013年4月22日 2:35
    2013年4月6日 7:43