在我的程序中,我有一些DllImport
,因为我想调用一些本机API。 int
类型用于返回类型的方法参数&。直到我在新的Windows 2012 R2服务器(64位)上运行我的应用程序之前,它工作得很好。当我将ref
参数的类型中的一个从int
更改为IntPtr
时,问题得到解决。我们可以用DllImport方法签名中的“IntPtr”替换所有“int”参数和返回类型吗?
我知道IntPtr
是用来表示一个指针或句柄。 但是,MSDN也表示IntPtr
是“设计为一个整数”,其大小是平台特定的。因此,如果IntPtr
能够处理平台特定大小的整数,是否可以将所有int
参数&返回类型替换为IntPtr
?
我正在使用C#.NET 4.0。
它可能会工作,但正确的方法是在msdn上查找方法的签名,然后检查类型概述tqble以查看具有本机大小的类型概述。 – CodesInChaos