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

Michelle ·
更新时间:2024-09-21
· 944 次阅读

直接上代码:

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; } } } } 您可能感兴趣的文章:C#操作SQLite方法实例详解C#中使用SQLite数据库的方法介绍ASP.NET(C#)中操作SQLite数据库实例C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)C#实现Excel导入sqlite的方法C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法C#简单访问SQLite数据库的方法(安装,连接,查询等)c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)C#解决SQlite并发异常问题的方法(使用读写锁)C# SQLite执行效率的优化教程



dll 自动 C# 系统 dll文件 SQLite

需要 登录 后方可回复, 如果你还没有账号请 注册新账号