用API写一个DLL,但是又想用CString类,如何做呢? 你找找VC安装时附带的MFC源码,如果找到CString类的源码,把它拷贝出来旧行乐 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道有没有用!http://www.csdn.net/expert/topic/163/163531.shtm 看来真的只有自己写了。CString的LPCSTR操作符重载提供的功能比较好用,但就是跟mfc42.dll分不开;STL中的string没有LPCSTR这样简单好用的东西。//sigh 我的经验是SDK中用CString只有死路一条,不知个位大侠有什么好办法吗? 各位,我有个好方法,绝对可用,而且非常之简单!只需在Project->settings->C++下的Preprocessor definitions 下加一个_AFXDLL项就可以了! Add MFC's CString class to ATL with No MFC Dependencieshttp://codeguru.earthweb.com/atl/MFCCStringForATL.shtml 多谢各位啦!搞定了。按照masterz给的链接,从codeguru那里copy & paste了那个macro回来,运行那个macro之后在VC的目录下得到ATL\include\ATL_CString.h和ATL\src\ATL_CString.cpp,把这两个文件加到project中,并稍做如下的修改就可以了:1、在ATL_CString.h中增加下面几行:#include <crtdbg.h>#ifndef ATLASSERT #define ATLASSERT(expr) _ASSERTE(expr)#endif#include <tchar.h>2、把ATL_CString.cpp中的两处_Module.GetResourceInstance( )换成我自己的DLL的hInstance,hInstance的值可以在DllMain( )初始化时得到。由于我的DLL没有用ATL,没有CComModule _Module,所以要做上面的修改。如果写的是ATL project,估计不用改就可以。编译运行正常,只是生成的DLL多export出了几个函数,无大碍。release版本的ATL_CString.obj大小55K,注释掉CString中不需要的成员函数还可以再小。_AtlGetObjectSourceInterface@20_AtlIPersistPropertyBag_Load@20_AtlIPersistPropertyBag_Save@24_AtlIPersistStreamInit_Load@16_AtlIPersistStreamInit_Save@20再次感谢! VS2008 使用opengl WinSocket编程 哪个算法给大家看看? 如何动态的向dll文件添加图标? 怎样用自己的图片刷新界面? richedit控件如何实现右键弹出菜单?? 请教用VC++读取DXF文件格式的源代码和相关资料.急用呀. 继承类出现问题?? switch语句??? 菜鸟级的combo问题 操作符丢失是什么意思?(有关sql语句) 号外!!号外!!哪里有InstallShiled的使用教程(说明)下载??这个分好拿喔!
http://www.csdn.net/expert/topic/163/163531.shtm
CString的LPCSTR操作符重载提供的功能比较好用,但就是跟mfc42.dll分不开;
STL中的string没有LPCSTR这样简单好用的东西。//sigh
只需在Project->settings->C++下的Preprocessor definitions 下加一个_AFXDLL项就可以了!
http://codeguru.earthweb.com/atl/MFCCStringForATL.shtml
#include <crtdbg.h>#ifndef ATLASSERT
#define ATLASSERT(expr) _ASSERTE(expr)
#endif#include <tchar.h>2、把ATL_CString.cpp中的两处_Module.GetResourceInstance( )换成我自己的DLL的hInstance,hInstance的值可以在DllMain( )初始化时得到。由于我的DLL没有用ATL,没有CComModule _Module,所以要做上面的修改。如果写的是ATL project,估计不用改就可以。编译运行正常,只是生成的DLL多export出了几个函数,无大碍。release版本的ATL_CString.obj大小55K,注释掉CString中不需要的成员函数还可以再小。
_AtlGetObjectSourceInterface@20
_AtlIPersistPropertyBag_Load@20
_AtlIPersistPropertyBag_Save@24
_AtlIPersistStreamInit_Load@16
_AtlIPersistStreamInit_Save@20再次感谢!