程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struct-新人求問,C#調用C++dll,C++函數中有NULL參數,我轉換到C#該怎麼改。。

struct-新人求問,C#調用C++dll,C++函數中有NULL參數,我轉換到C#該怎麼改。。

編輯:編程綜合問答
新人求問,C#調用C++dll,C++函數中有NULL參數,我轉換到C#該怎麼改。。

最近調用C++dll,各種問題,煩死了都要。。求各位幫助。。
C++
DEVICE_ID APICALL NSSTCreateDevice(
NsstDevice* device,
AppProxy* proxy
);
其中NsstDevice和 AppProxy是結構,調用時這樣的:**DEVICE_ID id = NSSTCreateDevice(&device,NULL);**

今天花了好大功夫轉換了C#結構,這是其中一個:
public struct NsstDevice
{
//設備IP
//[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string host;

    //協議端口,默認80
    public  UInt16 protocol_port;
    //rtsp數據端口,默認554
    public UInt16 rtsp_port;
    //用戶名
    //[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
    public string username;

    //密碼
    //[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
    public string password;
    //產品系列               

    public NSST_DEVICE_TYPE dev_type;
}

然後賦值了:
NsstDevice Ndevice;
Ndevice.host="192.168.1.109";
Ndevice.username = "admin";
Ndevice.password = "admin";
Ndevice.protocol_port = 80;
Ndevice.rtsp_port = 554;
Ndevice.dev_type = NSST_DEVICE_TYPE.NSSTDEV_H;(大家看看到這有沒有問題。。)
但是第二個參數搞不定了。。。
我在C#中是這樣寫的:
public extern static UInt16 NSSTCreateDevice([In(), Out()] ref NsstDevice device ,ref AppProxy proxy);(不知道inout那裡有沒有用。。)
調用的時候第二個NULL我不知道該怎麼寫,對於引用不太了解唉。。
device_id = InitLogin.NSSTCreateDevice(ref Ndevice,×××××××××××××××× );求大家幫我看看第二個NULL怎麼填充。。
真心感激不盡。。

最佳回答:


NULL傳IntPtr.Zero就可以了。

caozhy
caozhy
u010046276
caozhy
u010046276
u010046276
caozhy
u010046276
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved