当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-11-03

    本文导语:  直接上代码: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Management; using System.IO; namespace SqliteAuto { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main()...

直接上代码:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Management;
using System.IO;
namespace SqliteAuto
{
  static class Program
  {
    /// 
    /// 应用程序的主入口点。
    /// 
    [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;
      }
    }
  }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python中实现json字符串和dict类型的互转
  • 求意见如何在linux的应用软件中实现一个cpu调度框架,使得多个cpu调度算法可以在同一个系统中实现无缝整合?(分数不够还能再加)
  • 有没有在jsp中实现对tree型结构进行删除、插入操作
  • 如何在JAVA中实现类似VC中sprintf的功能
  • 在applet中实现文字超连接
  • 请教高手如何在jsp中实现图表功能? iis7站长之家
  • [求救]如何在telnet程序中实现下载功能。
  • 在c和c++中实现函数回调
  • 如何在JEditPanel中实现语法加亮,或者有什么其他的办法,哪里有这方面的教材?
  • 急急急,小问题,怎么在html的meta中实现转向功能,把它指引到另一页面上!??
  • 在JSP中实现文件上传的问题。
  • 如何在JSP页面中实现下载统计
  • JFrame怎样在WINDOWS中实现自动最大化?
  • 如何在java 的class中实现转向另一页?
  • 简单问题,怎么在Taglib中实现重定向。
  • 请教高手如何在jsp中实现图表功能?
  • 请问,类似于股市曲线那种,跟数据相关的曲线,怎么在JSP中实现?
  • 我需要在程序中实现将一个文件复制到其他结点的功能
  • 在web页面中实现树型结构
  • 如何在局域网中实现邮件系统
  • 如何在JB7中实现EJB helloworld! 配置和操作在线等!急!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3