C#应用程序可以在Win7上运行,但不能在XP上运行

C#应用程序可以在Win7上运行,但不能在XP上运行,c#,flash,dll,actionscript,interop,C#,Flash,Dll,Actionscript,Interop,我已经用C#构建了一个应用程序,并为此应用程序构建了一个设置。安装中的应用程序可以在所有Windows 7机器上运行,但似乎不能在任何XP机器上运行 我将简要描述我的应用程序的功能 应用程序在启动时播放swf文件。swf文件有3个按钮,具有单独的功能。 基本上,只要单击这些按钮,它就必须显示从sqlite加载的某些图像 问题是应用程序正确加载swf,swf完全播放到最后,然后在我放置了3个按钮的最后,单击事件不会响应任何按钮我猜这是FSCommand和DLL未正确注册的问题 我添加到设置中的DL

我已经用C#构建了一个应用程序,并为此应用程序构建了一个设置。安装中的应用程序可以在所有Windows 7机器上运行,但似乎不能在任何XP机器上运行

我将简要描述我的应用程序的功能

应用程序在启动时播放swf文件。swf文件有3个按钮,具有单独的功能。 基本上,只要单击这些按钮,它就必须显示从sqlite加载的某些图像

问题是应用程序正确加载swf,swf完全播放到最后,然后在我放置了3个按钮的最后,单击事件不会响应任何按钮我猜这是FSCommand和DLL未正确注册的问题

我添加到设置中的DLL是

  • AxInterop.shockWaveLashObjects.dll
  • Interop.shockWaveLashObjects.dll
  • System.Data.SQLite.dll
  • KP-ImageViewerV2.dll(来自codeproject.com)
还有我的清单文件和.config文件

我尝试使用RegSrv32 C:\Interop.ShockwaveFlashObject.dll手动注册dll 以及C:\AxInterop.shockWaveLashObject.dll 我得到的错误是

The (DllPath and Name Here) was loaded but DllRegisterServer entry point was not found.
我用来显示swf文件的代码如下

private void axShockwaveFlash1_FSCommand(object sender,AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
 {
   string btn = e.command.ToString();
   if (btn == "play")
     {
       try
        {
        frmMain Main = new frmMain();
        Main.Show();
        this.Hide();
        }
        catch (Exception ex) 
        { MessageBox.Show(ex.ToString()); }
      }
      if (btn == "syllabus")
      {
         SQLiteConnectionStringBuilder strbldr = new SQLiteConnectionStringBuilder();
         strbldr.DataSource = @Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\TVC E-Excust Customs\\E-ExcustCustoms.s3db";
         SQLiteConnection con = new SQLiteConnection(strbldr.ConnectionString);
         con.Open();
         Syllabus_usageInformation syl = new Syllabus_usageInformation(this);
         SQLiteCommand cmd = new SQLiteCommand("SELECT ImageFiles FROM misc WHERE Name='Syllabus new'", con);
         SQLiteDataReader reader = cmd.ExecuteReader();
         byte[] imageBytes = null;
         while (reader.Read())
         {
          imageBytes = (System.Byte[])reader["ImageFiles"];
         }

         MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
         con.Close();
         syl.kpImageViewer1.OpenButton = false;
         syl.kpImageViewer1.Image = (Bitmap)Image.FromStream(ms,true);
         syl.kpImageViewer1.Zoom = 85;
         syl.Show();
         this.Hide();
        }
        if (btn == "usageInformation")
        {
            SQLiteConnectionStringBuilder strbldr = new SQLiteConnectionStringBuilder();
            strbldr.DataSource = @Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\TVC E-Excust Customs\\E-ExcustCustoms.s3db";
            SQLiteConnection con = new SQLiteConnection(strbldr.ConnectionString);
            con.Open();
            Syllabus_usageInformation syl = new Syllabus_usageInformation(this);
            SQLiteCommand cmd = new SQLiteCommand("SELECT ImageFiles FROM misc WHERE Name='UsageInformation'", con);
            SQLiteDataReader reader = cmd.ExecuteReader();
            byte[] imageBytes = null;
            while (reader.Read())
            {
                imageBytes = (System.Byte[])reader["ImageFiles"];
            }

            MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
            con.Close();
            syl.kpImageViewer1.OpenButton = false;
            syl.kpImageViewer1.Image = (Bitmap)Image.FromStream(ms, true);
            syl.kpImageViewer1.Zoom = 82;
            syl.Show();
            this.Hide();

        }
    }
我的swf文件有三个按钮,如上所述。这些按钮在一个电影剪辑中,我也将粘贴代码 下面是其中一个按钮中发生的情况。剩下的2个与此相同,只是更改了值。 我对flash非常陌生,但这个问题可能是因为使用了AS版本/或者运行这个swf需要flash的最低版本。再次提及视频播放,但按钮在XP上没有响应,但在7上工作

on (rollOver)
{
 if (_root.link != page)
 {
    this.gotoAndPlay("s1");
 }
}
on (releaseOutside, rollOut)
{
 if (_root.link != page)
 {
    this.gotoAndPlay("s2");
 }
}
on (press) 
{
  fscommand("syllabus","syll");
}
如果有人需要更多的解释或更多的代码或只是整个项目,让我知道将发送该项目。
我这里没有解决方案,因此非常感谢您的帮助。

好的,问题已解决。.net 4.0存在一些问题。我发现这是因为我在谷歌上搜索了我的问题,我不记得我做过的搜索,但它返回了2个结果!!其中一个进行了对话,一些VS guy和一个用户正在谈论他面临的问题,这与我的问题类似。VS的家伙同意4.0确实存在问题,他们会纠正这个问题。似乎我浪费了很多时间。

您是否阅读了文档,以了解所有提到的库是否与Windows XP兼容?您在两个系统中使用的.NET framework版本是否相同?请确保两台机器的.NET framework版本相同。NET 4.0是我添加到安装中的先决条件,因此我我很肯定它在那里。我已在这两个服务器上安装了客户端配置文件machines@RanhiruCooray这些是通用库,它们必须兼容,不是吗!!sqlite是兼容的,我将不得不用shockwave进行检查,但我几乎不认为它是不兼容的