当前位置: 代码迷 >> PB >> PB调用VC写的DLL,传出参数的值总是不变,该怎么处理
  详细解决方案

PB调用VC写的DLL,传出参数的值总是不变,该怎么处理

热度:166   发布时间:2016-04-29 09:31:18.0
PB调用VC写的DLL,传出参数的值总是不变
最近用VC++写了一个函数,简单一点写,如 int f_get(char* info)
在PB中声明 int f_get(ref string info)

在PB中调用 f_get时是成功的,但是 info的值总是不变
如传进去"A",虽然在VC++中函数f_get把info的值改变了,但是PB调用后,info的值仍然不变,

请高手指点,谢谢!

------解决方案--------------------
楼主的传入参数与输出参数分开试试,这样写的话如果返回的时候字符数大于一个的话就有可能出错的,
对于传址引用的参数,必须考虑到它将返回的最大值~~
------解决方案--------------------
int _stdcall f_add(char* Get_Info) 

Get_Info = "改变"; 
return 0; 
}
在VC里面,对于char*类型(字符指针)不要使用=(等号)来赋值,这和PB中的字符串是不一样的,要用strcpy方法。
你把Get_Info = "改变"; 改为strcpy(Get_Info,"改变");试试。
------解决方案--------------------
正解,就是这样的,回复内容太短了!
  相关解决方案