Programmeringsproblem C#. ->DLL i Vista + Win7

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av Cenorpa »

Har stött på ett problem som är minst sagt frustrerande. Har gjort ett stort program i C# som har fungerat hur bra som helst under WinXP. Nu när jag kör Win7 så dyker det upp problem när jag ska utnyttja DLL filer. Tänkte att det skulle bli bättre om jag kompilerade om projektet under den nya utvecklingsmiljön men det blev det då inte.

Problemet uppstår när jag t.ex ska utnyttja FT2xx.dll:

Kod: Markera allt

[DllImport("FTD2XX.dll", EntryPoint = "FT_OpenEx")]public static extern uint FT_OpenEx(string ftDescr, uint ftHandle2, ref IntPtr ftHandle);


private static IntPtr m_USBhandler;
uint ft_status = FT_OpenEx(description, 2, ref m_USBhandler);1
Felmeddelande:

An attempt was made to load a program with an incorrect format.
(Exception from HRESULT: 0x8007000B)

Kod: Markera allt

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at test.DLLlek.FT_Close(IntPtr ftHandle)
   at test.DLLlek.OpenByDescription(String description) in C:\Users\Marcus\Documents\Visual Studio 2008\Projects\test\test\DLLlek.cs:line 105
   at test.DLLlek.Send(Byte[] DMXDATA, Int32 DeviceID) in C:\Users\Marcus\Documents\Visual Studio 2008\Projects\test\test\DLLlek.cs:line 58
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4918 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
test
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Marcus/Documents/Visual%20Studio%202008/Projects/test/test/bin/Release/test.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4918 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4918 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4918 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



Ovanstående kod har fungerat hur bra som helst altså under tidigare OS, som WinXP. Hur ska jag göra detta Vista + Win7 kompatibelt?
Senast redigerad av Cenorpa 29 juli 2009, 17:48:35, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av sodjan »

> ...så dyker det upp problem...

Men du vet inte vilka problem ?
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av Cenorpa »

Lade till felmeddelandet, Sodjan hann nog inte se det
Senast redigerad av Cenorpa 29 juli 2009, 19:51:31, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26612
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av Icecap »

Jag har gjort ett antal program som fungerar kanon under XP men under Vista krashar de. Ingen specialgrejer är med, enbart std. Windows API-kall till serieport, utskrift osv. Jag tror inte att detta har blivit bättre i Win7 så resultatet är väl att man måste köpa nya verktyg eller skita i Vista+
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av sodjan »

> Hur ska jag göra detta Vista + Win7 kompatibelt?

Fråga FTDI.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av thepirateboy »

Har du testat med annat version på framework?
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av f.petrini »

Samma felmeddelande får man om man försöker ladda en 32-bitars DLL i en 64-bitars .NET applikation. (Eller tvärt om)

Kör du 64-bitars Win7? Kolla i så fall så du inte mixar 32/64-bitar...
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av Cenorpa »

sodjan skrev:> Hur ska jag göra detta Vista + Win7 kompatibelt?

Fråga FTDI.
Problemet gäller inte bara för FTDI, det verkar vara ett återkommande problem med alla DLL:er

Ja det är 64-bitars win7. Applikationen är ursprungligen 32bitars, även DLL:en borde vara det.
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Re: Programmeringsproblem C#. ->DLL i Vista + Win7

Inlägg av Cenorpa »

Besvarar min egen tråd.
Jag fick det att fungera och det var ju lättare än vad jag trodde. I VisualStudio så gick men helt enkelt in på build option och ställde om från "any CPU" till enbart x86, då fungerar det. Dök upp något annat litet problem men tror det har att göra med att processorn är lite snabbare i den här datorn än min gamla laptop.
Är ju lite skillnad på en Celeron på 1,86GHz och en i7 2,66GHz :)
Skriv svar