C#应用程序可以在Win7上运行,但不能在XP上运行
我已经用C#构建了一个应用程序,并为此应用程序构建了一个设置。安装中的应用程序可以在所有Windows 7机器上运行,但似乎不能在任何XP机器上运行 我将简要描述我的应用程序的功能 应用程序在启动时播放swf文件。swf文件有3个按钮,具有单独的功能。 基本上,只要单击这些按钮,它就必须显示从sqlite加载的某些图像 问题是应用程序正确加载swf,swf完全播放到最后,然后在我放置了3个按钮的最后,单击事件不会响应任何按钮我猜这是FSCommand和DLL未正确注册的问题 我添加到设置中的DLL是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
- AxInterop.shockWaveLashObjects.dll
- Interop.shockWaveLashObjects.dll
- System.Data.SQLite.dll
- KP-ImageViewerV2.dll(来自codeproject.com)
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进行检查,但我几乎不认为它是不兼容的