VC6.0的DLL#pragma data_seg("Share")
_declspec(dllexport) string str="";
#pragma data_seg()
#pragma comment(linker, "/SECTION:Share,RWS")主应用程序为什么我传给DLL的str字符串,只要超过8个中文字符或是16字元就会出错?
我想传超过16字元啊,各位牛人请帮个忙.

解决方案 »

  1.   

    溢出了。因为那个str开始实际长度只有1。
    _declspec(dllexport) string str="12345678901234567890";
    20个长度试试。
      

  2.   

    这个以前就试过了,在DLL中宣告超过16个字元
    _declspec(dllexport) string str="12345678901234567890";
    就出错了,这是什么道理?
      

  3.   

    不要使用string, 使用char str[16] = { 0 };试试.
      

  4.   

    用char[16]吧,因为string是个容器,不要在DLL里使用,比如map也不行.
      

  5.   

    用静态原子类型的数组把,比如 char aaa[16]; long  double ...
      

  6.   

    那如果我传过来的是unicode字符串数组,那要怎么宣告?
    LPWSTR STR[10]吗?怎么转换成const char?
      

  7.   

    可以WCHAR str[ MAX_STRING_LENGTH ];