1. 程式人生 > >對C#調用C++的dll的一點思考

對C#調用C++的dll的一點思考

今天 def byte lag har 調用 一段時間 總結 unsigned

  最近在對接C++程序的時候碰到了一些問題,然後花了一段時間才解決,今天就這些小問題來做一個總結,很多時候由於對另外一種開發語言的不熟悉,會在使用的過程中遇到很多的問題,這些問題看似簡單但是背後卻有很多的東西需要去總結的,下面就最近遇到的兩個調用C++ API的示例來做一個總結。

1 首先我們看看如果有下面的一些C++的接口,我們怎樣來進行對接。

  typedef unsigned long	KEIO_LONG;
  typedef char	KEIO_BYTE;
  typedef void *		KEIO_HANDLE;

  int KEIOAPI OpenKeio(KEIO_HANDLE * phKeio);
  int KEIOAPI CloseKeio(KEIO_HANDLE hKeio);

  int KEIOAPI GetKeioTime1(KEIO_HANDLE hKeio, KEIO_LONG * pTime);
  int KEIOAPI GetKeioCode1(KEIO_HANDLE hKeio, KEIO_BYTE * pKeioCodeBuf, KEIO_LONG nKeioCodeBuf);
  int KEIOAPI GetKeioTime2(KEIO_HANDLE hKeio, KEIO_LONG * pTime);
  int KEIOAPI GetKeioCode2(KEIO_HANDLE hKeio, int flag, KEIO_BYTE * pKeioCodeBuf, KEIO_LONG nKeioCodeBuf);
  int KEIOAPI GetKeioCode3(KEIO_HANDLE hKeio, KEIO_BYTE * pKeioCodeBuf, KEIO_LONG nKeioCodeBuf);

  我們知道C#中調用C++的dll的時候是需要經過平臺轉換的,那麽上面的API要經過轉換以後得到的具體的類型是什麽樣的呢?

對C#調用C++的dll的一點思考