1樓:安慕希
答:string
c++ 宣告乙個字串有好多種方式 char* cstring 等等好多 我不是搞c++的
2樓:匿名使用者
char 是8位, int 是32位,可以傳 int 但是要確保 你的 int 變成8位後沒有位數損失,
char* 一般是乙個 byte 陣列,先要用 marshal.copy 函式將陣列複製到乙個 intptr 中,任意指標在c#中都表示為 intptr ,將intptr 傳入你的方法就行
3樓:
用 void* 可以,需要的時候再轉換回來 (char*)轉換
舉個我用過的例子
unsafe public extern static void* virtualalloc(void* lpaddress, int dwsize, int flallocationtype, int flprotect);
4樓:徐問楣
用stringbuilder就可以,我這幾天正好在用這個.
c# string型別如何轉換成char*型別?
5樓:淋漓盡致的
c# char 與 string之間的轉換
c++的char *怎麼轉換為c#中的資料型別
6樓:匿名使用者
在c#中是intptr
7樓:緩緩掉落的松針
可以直接用string
c#與c++的資料型別轉換
8樓:匿名使用者
因此unsigned char *pucchmsg如果是作為輸出緩衝區的話轉換為stringbuilder pucchmsg,如果是作為輸入的話轉換為string pucchmsg,
比如:int *puiphmsglen轉換為ref int puiphmsglen,我在c#呼叫c++動態庫都是這麼轉的。
c#呼叫c++的dll,c#中的型別為string[],c++中的型別為char**,怎樣把c#中的string[]傳到c++中的char**?
9樓:匿名使用者
string對應c艹中bstr,型別都不對怎麼傳?
10樓:空雪夢見
1、你的引數順序兩邊沒有對應
2、char*應該在dllimport裡面加上charset=charset.ansi
3、最後輸出我不確定你這樣行不行,我覺得應該是 out intptr result,然後之後再用其他辦法從intptr轉到byte再轉到string(intptr能不能直接到string我不確定)
4、char* 這種型別,c#中新建乙個intptr然後分別把每個字串搞成intptr再傳過去可行。有沒有更簡便的方法不知道。string可以先到byte然後再申請一塊記憶體intptr然後從byte拷過去。
5、c#中從string轉到byte的時候,最後是不帶結尾的0的,這個要注意自己加上去不然c++那邊要crash
6、你那個result是怎麼申請記憶體的,然後最後打算怎麼在c#裡釋放啊……囧
11樓:匿名使用者
char**型別就相當於char*
c#呼叫c++寫的dll 時,c++中有一函式返回值為char*。在c#中相應的資料型別應該用什麼型別啊。
12樓:匿名使用者
使用system::string就可以了,因為你已經指定了charset = charset.ansi, clr可以自動轉換asci字串和unicode 字串(.net字串)
13樓:
用string。 char*表示返回乙個字元型別的記憶體位址。此字串在函式中應該不會有任何改變
stringbudiler是變動字串常用的。
14樓:匿名使用者
stringbuilder
c中如何把string型別轉換為double型別
隱式轉換 當對簡單的值型別進行轉換時,如果是按照 byte,short,int,long,float,double從左到右 從短到長 進行轉換的時候,可以直接進行轉換 隱式轉換 不用做任何說明。簡單的 示例 static void main string args 顯示轉換 依然是對值型別進行轉換時...
C 中,如何講CHAR陣列轉換成FLOAT型資料
可使用庫函式strtod const char ptr,char endptr 或atof const char ptr 將char陣列轉換成float型資料。當strtod的第二個引數endptr不為null時,且ptr中含非法字元,則會將非法字元通過endptr返回。include includ...
在c中如何將int型別強制轉換為double型別
deqr雲飄 double c 10.1 int a int c 10 方式方法有很多 只要意識到一點,當大型別轉換成小型別都有可能出錯,只需要型別一致 就可以進行運算了 double c 10.1 int a int c 10 方式方法有很多 只要意識到一點,當大型別轉換成小型別都有可能出錯,只需...