我在C#中构建了一个应用程序,并为此应用程序构建了一个设置。设置上的应用程序适用于所有Windows 7计算机,但似乎无法在任何XP计算机上运行。
我将简要描述我的应用程序的作用。
应用程序在启动时播放swf文件。 swf文件有3个具有单独功能的按钮。 基本上单击这些按钮,它必须显示从sqlite加载的某些图像。
问题是应用程序正确加载了swf,swf完全播放到最后,然后在我放置3个按钮的那一端,click事件不响应任何按钮。 我在猜测这是FSCommand的问题,并且dll没有正确注册
我添加到设置中的dll是
此外,存在的文件是我的清单文件和.config文件
我尝试使用RegSrv32 C手动注册我的Dll:\ Interop.ShockwaveFlashObject.dll 还有C:\ AxInterop.ShockwaveFlashObject.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文件有三个按钮,如上所述。那些按钮在影片剪辑中我也会粘贴AS代码 以下是其中一个按钮中发生的情况。剩下的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");
}
如果有人需要更多解释或更多代码,或者只是整个项目让我知道会发送项目。 我在这里没有解决方案,所以任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
好的问题已解决.. .net 4.0存在一些问题。我发现这是因为我在谷歌搜索我的问题的东西,我不记得我做的搜索,但它返回2结果!其中一个谈话,一些VS家伙和一个用户正在谈论他遇到的问题,这与我的相似。 VS家伙同意确实问题是4.0,他们会纠正这个问题。好像我浪费了很多时间。