小弟是vc的爱好者. 我用VC建了一个DLL tools.dll, 里面有一个函数read()
具体代码如下
CHAR* APIENTRY read(){
  return "ok";
}
我在VB中测试这个函数时返回:72847388
请教!请教!

解决方案 »

  1.   

    你的"ok"是个静态变量,当作用域消失后,变量也随着消失解决办法1:
    用全局的静态变量
    CHAR g_str[1024];
    CHAR* APIENTRY read(){
      return g_str;
    }解决办法2:
    用参数传递
    void APIENTRY read(CHAR *pStr){
      strtcpy(pStr, "ok");
    }
      

  2.   

    这个OK是常量,不是静态变量.对于一个DLL中的常量来说,只要在DLL未被卸载之前,它都是存在的,所以通常情况下都是可以返回其地址的.所以这个函数并没有错.错误是你的client(即调用dll那个VB程序)产生的.所以要看你client的代码.