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