2011-09-26 7 views
0

J'ai construit une application en C# et j'ai aussi construit une configuration pour cette application. L'application sur l'installation fonctionne sur toutes les machines Windows 7 mais ne semble pas fonctionner sur n'importe quelle machine XP.L'application C# fonctionne sur Win 7 Mais pas sur XP

Je vais décrire brièvement ce que ma demande fait.

L'application lit un fichier SWF au démarrage. Le fichier swf a 3 boutons avec des fonctions séparées. Fondamentalement, en cliquant sur ces boutons, il doit montrer certaines images qui sont chargées à partir de sqlite. Le problème est que l'application charge le swf correctement, le swf joue complètement jusqu'à la fin, puis à la fin où j'ai placé 3 boutons, l'événement click ne répond à aucun bouton. Je devine que ce est un problème avec FSCommand et les DLL ne sont pas correctement enregistré se

Les dll que je l'ai ajouté à ma configuration sont

  • AxInterop.ShockwaveFlashObjects.dll
  • Interop.shockwaveFlashObjects. dll
  • System.Data.SQLite.dll
  • KP-ImageViewerV2.dll (de codeproject.com)

aussi les fichiers présents sont mon fichier manifeste et le fichier .config

J'ai essayé enregistrer mes Dlls manuellement à l'aide RegSrv32 C: \ Interop.ShockwaveFlashObject.dll et aussi C: \ AxInterop.ShockwaveFlashObject.dll L'erreur i obtenir est

The (DllPath and Name Here) was loaded but DllRegisterServer entry point was not found. 

Le code que j'utilise pour afficher mon fichier swf est comme ci-dessous

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(); 

     } 
    } 

mon fichier swf a trois boutons comme indiqué abo ve. ces boutons sont dans un clip, je vais coller le code AS ainsi Voici ce qui se passe dans l'un des boutons. Les 2 restants sont identiques à celui-ci avec seulement les valeurs changées. Je suis assez nouveau pour le flash, mais ce problème pourrait être dû à la version AS utilisée/ou la version minimale de flash étant nécessaire pour exécuter ce swf. Juste une mention encore une fois la vidéo joue mais les boutons sont non réactifs sur XP mais fonctionne sur 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"); 
} 

Si quelqu'un a besoin de plus d'explications ou plus de code ou juste le projet entier laissez-moi savoir enverra le projet. Je n'ai pas de solutions ici, donc toute aide serait grandement appréciée.

+1

Avez-vous lu la documentation pour voir si toutes les bibliothèques mentionnées sont compatibles avec Windows XP? –

+0

Utilisez-vous la même version du framework .NET dans les deux systèmes? – atzu

+0

S'il vous plaît assurez-vous que la version de.Net framework est le même pour les deux machines – Prasanth

Répondre

0

D'accord PROBLÈME RÉSOLU ... il y a un problème avec .net 4.0. J'ai trouvé cela parce que j'ai cherché quelque chose sur Google pour mon problème, je ne me souviens pas de la recherche que j'ai faite, mais il a retourné 2 résultats !! l'un d'entre eux avait une conversation, un gars de VS et un utilisateur parlaient du problème auquel il était confronté et qui était similaire au mien. le gars VS a convenu que, en effet, le problème était avec 4.0 et qu'ils vont corriger le problème. Il semble que j'ai perdu beaucoup de temps.

Questions connexes