首页 > 编程 > C# > 正文

C#中实现在32位、64位系统下自动切换不同的SQLite dll文件

2020-01-24 02:26:43
字体:
来源:转载
供稿:网友

直接上代码:

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 + "//lib//SQLite32.DLL";      string dll64 = System.Windows.Forms.Application.StartupPath + "//lib//SQLite64.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, dllpath, 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;      }    }  }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表