C#如何判断系统是32位还是64位,然后去DllImport 不同版本的dll,谢谢了。
解决方案 »
- Access2007 能否用ADO的 sqlDataAdapter吗
- 静态方法同步问题
- 刻绘软件的原理是什么?大家有做过这方面开发的吗?
- Syncfusion 用过的高手来~~~~
- ~~~谁有盗版的 C#高级编程(第4版) 出售?。。哈!~~~
- C#中如何获得一个.EXE文件的修改时间
- 急!两天了没解决,如何获得datagrid中HyperLinkColumn的DataNavigateUrlField的值!
- 关于c#的int和byte移位问题,迷惑中,知道的请解答一下
- 在c#中wpf动态添加控件,并设置他们的位置,谢谢
- 求助:DataList模板注脚中加了一个组合框,但在后台程序中填充时出错?哪位高手指点一下!谢谢!!!
- 怎么修改外部程序标题栏内的文本
- C# winform程序相关提问
32bit CPU AddressWidth = 32 N/A
64bit CPU AddressWidth = 32 AddressWidth = 64
{
string addressWidth = String.Empty;
ConnectionOptions mConnOption = new ConnectionOptions();
ManagementScope mMs = new ManagementScope(@"\\localhost", mConnOption);
ObjectQuery mQuery = new ObjectQuery("select AddressWidth from Win32_Processor");
ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(mMs, mQuery);
ManagementObjectCollection mObjectCollection = mSearcher.Get();
foreach (ManagementObject mObject in mObjectCollection)
{
addressWidth = mObject["AddressWidth"].ToString();
}
return Int32.Parse(addressWidth);
}
catch (Exception ex)
{
return 32;
}
如果是4就是32位,8就是64位。[DllImport("kernel32.dll")] 这样引入不同版本的DLL。
private static extern void 函数名(参数,[参数]);
函数名就是一个属于kernel32.dll里的一个函数。完了你就可以用那个函数了。kernel32.dll调用kernel32.dll这个DLL里面的API接口系统API
例如
[DllImport("user32.dll")]//--引入API
public static extern ReturnType FunctionName(type arg1,type arg2,...);//--声明方法
[DllImport("My64.dll", EntryPoint="ABC")]
extern static void ABC64();[DllImport("My32.dll", EntryPoint="ABC")]
extern static void ABC32();
if(是64位){[DLLImport("64.dll")]}else {[DLLImport("32.dll")]}吗??