C#中实现在32位、64位系统下自动切换不同的SQLite dll文件
发布时间:2020-12-15 00:51:01 所属栏目:C语言 来源:网络整理
导读:直接上代码: using System;using System.Collections.Generic;using System.Windows.Forms;using System.Management;using System.IO;namespace SqliteAuto{ static class Program { /// summary /// 应用程序的主入口点。 /// /summary [STAThread] static
直接上代码: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Management; using System.IO; namespace SqliteAuto { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); string dll32 = System.Windows.Forms.Application.StartupPath + "libSQLite32.DLL"; string dll64 = System.Windows.Forms.Application.StartupPath + "libSQLite64.DLL"; string dllpath = System.Windows.Forms.Application.StartupPath + "System.Data.SQLite.dll"; if (Detect32or64() == "32") { // do 32bit things. try { using (FileStream fs = File.Create(dllpath)) { } File.Copy(dll32,dllpath,true); } catch { Console.WriteLine("ERR"); } } else if (Detect32or64() == "64") { //do 64bit things try { using (FileStream fs = File.Create(dllpath)) { } File.Copy(dll64,true); } catch { Console.WriteLine("ERR"); } } Application.Run(new Form1()); } private static string Detect32or64() { try { 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 addressWidth; } catch (Exception ex) { Console.WriteLine(ex.ToString()); return String.Empty; } } } } 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |