c 庫c 呼叫開發時需要注意的一點

2021-08-31 15:38:58 字數 2476 閱讀 7886

因為業務需要,需要將乙個  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...