C 處理返回為LPSTR的DLL呼叫

2021-06-07 05:27:30 字數 767 閱讀 6333

1、在vc中我是這麼定義介面函式。

int _stdcall getgeoinfo(double dx,double dy,const char* szpath,char* field1,char* field2,bool v_biscache,lpstr pszbackstring)

lpstr pszbackstring為要傳出的字串資訊。

stringbuilder strreturn=new stringbuilder(50);

記住一點,傳入用string,傳出用stringbuilder

2、自己例子:

dll函式:mes_api bool winapi mes_getwo( lpcstr pcssn, out lpstr pswo , out lpstr psreturn );

c#呼叫 [dllimport("mes.dll", charset = charset.ansi)]

public static extern bool mes_getwo(string pcssn,  stringbuilder pswo,   stringbuilder psreturn);

public stringbuilder strwo1 = new stringbuilder(50);

public stringbuilder strerrormessage1 = new stringbuilder(50);

bpass = mesoperate.mes_getwo(strsn,  strwo1, strerrormessage1);

返回資料為arraybuffer的處理

首先,請求時的responsetype的值設為arraybuffer,但是注意,這會引起乙個問題,返回結構的data中所有內容都會是這種格式,包括json和字串,因此,如果是其他的報錯資訊,也無法按之前的方式列印。後台的標誌位都無法獲取,無法區分是否正確,因此,跟後台協商,新增請求頭引數 或者修改請...

c 返回值為引用

與返回原值的區別 return的位址和返回值的位址是同乙個,也就是佔據著同一塊記憶體,因此要求此時return的東西必須是乙個實體 有儲存位址 不能是乙個作用域僅在函式中的區域性變數 例如 int fun a fun 就會報錯。因為a找不到它應該存在的位址在 int fun int c a fun ...

C 函式返回物件為引用

當返回型別為引用時,我們可以用引用來接受,也可以用普通變數來接受。返回型別為普通型別時,例如int,被調函式結束的時候,會生成乙個臨時物件,然後return的內容拷貝給這個臨時物件。但返回型別為引用時,不會生成臨時物件。會直接返回物件。id 正確 id 錯誤,但是不會報錯 sw.setscore s...