今天看了一遍字符串,总结下:
) 写了书中的例子因为是写在dll里的,所以浅浅的学习了下dll的写法
1:def文件可以使导出函数名称不会被篡改,因为C++的编译器可能会在函数后面加上一些后缀用于多态。
def文件很简单
LIBRARY "Win32Dll"
EXPORTS
sfStringReverseW @1即可
2:在vs2005中选择 win32工程,ok后再选择dll或者exe,dll会自己写好dllmain函数。
3:在dll的头文件中定义
#ifdef UNICODE
#define StringReverse sfStringReverseW
#else
#define StringReverse sfStringReverseA
#endif
这样是为了吧头文件提供给用户。
)学习了下申请堆,转变字符串(Unicode转ansi和ansi转Unicode);WideCharToMultiByte,MultiByteToWideChar。
明天问下:为什么不在dll直接用malloc函数 可能是因为不一定C调用这个dll吧 如果Delphi调用可能会出问题?
2010-08-19
本文总结了DLL编程的一些基本技巧,包括使用def文件确保导出函数名不变、在Visual Studio 2005中创建DLL项目的方法、如何在DLL头文件中进行条件编译以兼容Unicode和ANSI字符串操作。此外,还探讨了在DLL内部使用内存分配函数的问题。
459

被折叠的 条评论
为什么被折叠?



