VC的动态链接库可以使用STL吗? 如题,我听说VC的动态链接库不可以使用STL,想请教下大家,是这么回事吗?如果可以用的话,应该加哪些语句呢?比如说,我在动态链接库中声明一个类,其中包含string的成员。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 导出类的参数类型以及接口函数的参数类型,尽量避免使用STL。避免使用的原因是不同版本的VC编译器的STL实现可能会有差异。动态链接库内部实现的话应该问题不大。 STRING是动态长度,EXE加入DLL,是将DLL的地址载入到进程当中去,你到处函数中如果有STRING这样的变长类型,编译器会选择一个默认长度,当你传入参数小于默认长度没问题,如果超过了,导致传入参数地址偏移。所以传字符串都是用CHAR[N] 或者TCHAR[N]固长结构,这不是STL或者CSTRING的问题,DLL 内部怎么用都是可以的。 可以,但是尽量不要再导出接口中使用,一定要使用char* 作为字符串的变量类型。 肯定可以,不过要保证调用者使用的stl和内部使用的是同一套。 Debug Assertion Failed!Expression:_CrtIsValidHeapPointer(pUserData)For information on how your program can cause an assertion failure,see the Visual C++ doucumentation on asserts.这是报错的提示 求使用ado插入oracle大量数据的解决方法 报Heap corruption detected 错误代码如下 帮我 各位高人谁能给我一个ADO连接MYSQL的字符串呀!! 语音数据经过G723或G729压缩后,有什么样的格式? 关于CImageList的问题 如何得到CStatic控件的大小???? 用什么软件可以较容易分析(初学)PE文件的结构 如何带多个附件,outlook automation? 急死我了,通信高手请近?!!! 求高速磁盘I/O方案(only read) WaitForMultipleObject和MsgWaitForMultipleObjects到底有什么不同?
动态链接库内部实现的话应该问题不大。
编译器会选择一个默认长度,当你传入参数小于默认长度没问题,如果超过了,导致传入参数地址偏移。所以传字符串都是用CHAR[N] 或者TCHAR[N]固长结构,这不是STL或者CSTRING的问题,DLL 内部怎么用都是可以的。
Expression:_CrtIsValidHeapPointer(pUserData)
For information on how your program can cause an assertion failure,see the Visual C++ doucumentation on asserts.这是报错的提示