因為業務需要,需要將乙個 c++寫的 dll庫由 c# 來呼叫,於是乎google了很多相關的文章,照著寫了個 c#程式,結果發現很多時候很簡單呼叫,結果都錯了,經過很多次的失敗和鬱悶,最後發現有個關鍵點,就是我們c++ 和 c#的資料型別要一一對照起來才可以,如下是從msdn上摘抄一段對照列表,很有用的
unmanaged type in wtypes.h
unmanaged c language type
managed class name
description
handle
void*
system. intptr
32 bits on 32-bit windows operating systems, 64 bits on 64-bit windows operating systems.
byte
unsigned char
system. byte
8 bits
short
short
system. int16
16 bits
word
unsigned short
system. uint16
16 bits
int
int
system. int32
32 bits
uint
unsigned int
system. uint32
32 bits
long
long
system. int32
32 bits
bool
long
system.int32
32 bits
dword
unsigned long
system. uint32
32 bits
ulong
unsigned long
system. uint32
32 bits
char
char
system. char
decorate with ansi.
wchar
wchar_t
system. char
decorate with unicode.
lpstr
char*
system. string or system.text. stringbuilder
decorate with ansi.
lpcstr
const char*
system. string or system.text. stringbuilder
decorate with ansi.
lpwstr
wchar_t*
system. string or system.text. stringbuilder
decorate with unicode.
lpcwstr
const wchar_t*
system. string or system.text. stringbuilder
decorate with unicode.
float
float
system. single
32 bits
double
double
system. double
64 bits
for corresponding types in visual basic 2005, c#, and c++, see the introduction to the .net framework class library .
C 需要注意點
11 設定static成員變數初值時,不受任何訪問許可權的束縛。可以再還沒有誕生任何物件的時候就處理static型別成員變數,但首先必須初始化它。2 只要access level允許,任何函式都可以訪問static成員變數。但如果你希望在產生任何object之前就訪問其class的private s...
關於connect需要注意的一點
這次要談的是connect 函式,出現的問題同樣是因為某條語句寫在了在迴圈之外。socket socket af inet,sock stream,0 中間省略 while 1 按照上面的 執行,當第一次沒有連線上,再進行第二次的連線時,如果此時連線成功,程式接著執行,便會被訊號中斷。後來調查發現,...
MTK NVRAM 需要注意的一點細節
在mtk讀寫nvram的時候要指定total和size 比如下面的 define nvram srs adjust total 4 define nvram srs adjust size sizeof nvram srs adjust setting s 需要特別注意的是其中的 nvram cat...