首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

dll中使用命名空间,就不能生成.lib,高手来解决啊立即给分!

2012-01-21 
dll中使用命名空间,就不能生成.lib,高手来解决啊,在线等,立即给分!!如题,我想为把stConverse函数添加到命

dll中使用命名空间,就不能生成.lib,高手来解决啊,在线等,立即给分!!
如题,我想为把stConverse函数添加到命名空间api中,可编译后就只有dll文件,没有.lib文件了?去掉namespace那条语句后就可以生成.lib了。
我又想保留命名空间,又想要有.lib,请问怎么解决啊?

//这是dll工程中的头文件代码
#include   <string>
namespace   api
{

#define   STRING_TOOL_INTERFACE   __declspec(dllexport)

STRING_TOOL_INTERFACE   std::string   stConverse(const   std::string   &src);

}

[解决办法]
你生成dll的时候就去掉名字空间吧
不过建议你使用标准DLL 用extern "C "
[解决办法]
加extern "C "后就没有名字空间这个东西了
[解决办法]
namespace 是C++语言的东西,DLL是个Binary的标准,怎么会支持namespace? 如果Visual Basic调用怎么办?去掉namespace, 另外不要用string作为参数和return值。 如果调用的.exe和你的DLL不是用一个Heap(一个Debug Build,一个Release Build,或者用不同的msvcrt版本).会立即Crash掉。(因为返回String的new 和 delete不在一个Heap上)STL的东西最好在Module内部用。

热点排行