PB PCSGU250DLL_Demo & Visual Studio 2010 Windows 7 64 bits


#1

Bonjour,

Avec mon nouveau PC Windows Home premium 7 64 bits, quand j’essaie d’utiliser l’application de démonstration PCSGU250DLL_Demo (après conversion de VB2008 express à VB2010), l’application se lance bien et la fenêtre “PCSGU250 Control Panel” apparaît ; mais dès que je clique sur le bouton “Start PCSGU250” l’erreur suivante se produit :

L’exception System.BadImageFormatException n’a pas été gérée
Message=Tentative de chargement d’un programme de format incorrect. (Exception de HRESULT : 0x8007000B)
Source=PCSGU250DLL_Demo
StackTrace:
à PCSGU250DLL_Demo.Form1.Start_PCSGU250()
à PCSGU250DLL_Demo.Form1.Button1_Click(Object sender, EventArgs e) dans C:\Users\Philip\Desktop\PCSGU250_DLL1\VB_2008_Expless\PCSGU250DLL_Demo\Form1.vb:ligne 36
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
à PCSGU250DLL_Demo.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
InnerException:

Par contre, sur un PC avec windows 7 ultimate 32 bits il n’y a aucun problèmes…

Après avoir compris que le problème provient du fait que “PcLab2000LT.exe” est une application 32 bits qui ne peut être appelée depuis votre démo sur un PC 64 bits, j’ai réussi à utiliser cette demo en créant un nouveau projet en compilation X86 au lieu du Any CPU (seule option quand j’ouvre votre projet de démonstration) avant d’ouvrir la Form1 et après avoir recopié tous les éléments du dossier C:…\PCSGU250_DLL\VB_2008_Expless\PCSGU250DLL_Demo\bin\Debug et du décocher la case “Activer le processus d’hébergement Visual Studio” dans les options de débogage pour résoudre un problème de fichier .manifest…

Pourriez vous fournir une version vraiment compatible 64 bits de votre démo ?

Par ailleurs, je ne sais pas si cela est lié mais il m’est impossible d’ajouter un contrôle MsChart au projet sans provoquer l’erreur :

“Une exception non gérée du type ‘System.StackOverflowException’ s’est produite dans mscorlib.dll”

Merci de votre attention et de votre aide !


#2

I’m sorry but no 64-bit demo/DLL is available at the moment.
Concerning the MSChart control problem please see this thread: viewtopic.php?f=3&t=3792


#3

Effectivement le problème entre MsChart et vos logiciels est étrange…

En fait, pour éviter l’erreur fatale :
“Une exception non gérée du type ‘System.StackOverflowException’…”

il suffit d’utiliser la méthode .Dispose “APRES” le lancement de PcLab2000LT.exe !!!

Exemple :

Public Class Form1
Dim NotUsedChart As System.Windows.Forms.DataVisualization.Charting.Chart

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If Start_PCSGU250() Then
        CheckBox1.Enabled = True
        Button5.Enabled = True
        On Error Resume Next   'ainsi il est inutile de créer NotUsedChart...
        NotUsedChart.Dispose() 'avant de la détruire !
        Err.Clear()
    End If

End Sub

End Class

et tout fonctionne ensuite…


#4

Thank you for this reply and the example code how to solve the problem!


#5

Actually, I also used windows7 64 bit. So for that you will do one thing faced any kind of error then my suggestion is that just get some review and from there you will get some information. Also, I have some different tricks about it. Because I faced so many problems when I use windows and also from Windows update error code 8007000e found some solution.