1
大家好! 我是電話應用程序的新手,並試圖使一個非常簡單的松下電話應用程序,以改變使用Windows Tapi32.dll和松下TSP的服務等級(COS)。我做了一個功能,它將改變PBX的服務等級。但上運行的應用的服務等級未在PBX沒有改變我的代碼給我任何類型的錯誤......下面是我的代碼...如何知道Tapi32.dll中的函數是從c#代碼執行的
[DllImport("Tapi32.dll", CharSet=CharSet.Auto, SetLastError=true)]
internal static extern int lineDevSpecific(IntPtr hLine,uint dwAddressID,uint hCall, IntPtr lpParams,uint dwSize);
[StructLayout(LayoutKind.Sequential)]
public struct UserRec
{
public int dwMode
{
get
{
return dwMode;
}
set
{
dwMode = 4;
}
}
public int dwParam1
{
get
{
return dwParam1;
}
set
{
dwParam1 = 18;
}
}
}
public static void Main(string[] args)
{
uint add = 0;
uint call = 0;
uint size = 0;
string vline = "125";
//IntPtr hline = &vline;
IntPtr hline = Marshal.StringToHGlobalUni(vline);
var sizeUserRec = Marshal.SizeOf(typeof(UserRec));
var userRec = Marshal.AllocHGlobal(sizeUserRec);
lineDevSpecific(hline, add, call, userRec, size);
var x = (UserRec)Marshal.PtrToStructure(userRec, typeof(UserRec));
Marshal.FreeHGlobal(userRec);
Console.WriteLine("Hii");
}
plz幫助我或者直接我在寫方向得到的東西。提前...提前...
@Frederick Thanx先生爲你的迴應...先生,我改變了代碼,因爲你建議和它給錯誤將plz告訴我如何得到這個錯誤.. – vikas 2013-03-04 11:41:14
@Frederick Plz先生指導我如何C atch在這種情況下的錯誤,因爲'結果'給出了負值。 – vikas 2013-03-04 11:55:47
@vikas,好吧,正如我所說的,你必須將'result'的值與文檔中列出的常量進行比較。您可能需要從頭文件('tapi.h')中獲取每個常量的值,以便在託管模塊中重新定義它們。 – 2013-03-04 12:03:30