Fråga : fel med utsidadll

Förmiddag I using en utsidadll och får efter felet:

Attempted som ska läsas, eller skrivskyddat minne. Denna är ofta en indikering att annat minne är corrupt.

System.AccessViolationException var unhandled
Message= " som försöks för att läsa eller det skrivskyddade minnet. Denna är ofta en indikering att annat minne är korrumperat.
StackTrace ”för
Source= " OptoTest ":

för OptoTest.Form1.OP930_GetTemperature (tempC för Double, enheter Int32) på OptoTest.Form1.btnTempGet_Click (den Object avsändaren, EventArgs e) i C:\Documents and Settings\user\My dokument \ visuellt hjälpmedelstudion 2008 \ projekterar \ OptoTest \ OptoTest \ Form1.cs: fodra 102

för System.Windows.Forms.Control.OnClick (EventArgs e) på
för System.Windows.Forms.Button.OnClick (EventArgs e) på
för System.Windows.Forms.Button.OnMouseUp (mevent MouseEventArgs) på
för System.Windows.Forms.Control.WmMouseUp (Message& M, MouseButtons knäppas, Int32 klickar), på
för System.Windows.Forms.Control.WndProc (Message& M) på
för System.Windows.Forms.ButtonBase.WndProc (Message& M) på
för System.Windows.Forms.Button.WndProc (Message& M) på System.Windows.Forms.Control. ControlNativeWindow.OnMessage (Message& M)
på System.Windows.Forms.Control. ControlNativeWindow.WndProc (Message& M)
på System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, msg Int32, IntPtr wparam,
för IntPtr lparam) på System.Windows.Forms.UnsafeNativeMethods. DispatchMessageW (MSG&-msg)
på System.Windows.Forms.Application. ComponentManager. System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (Int32 dwComponentID, pvLoopDataen Int32 resonerar, Int32),
på System.Windows.Forms.Application. ThreadContext.RunMessageLoopInner (Int32 resonerar, det ApplicationContext sammanhanget),
på System.Windows.Forms.Application. ThreadContext.RunMessageLoop (Int32 resonerar, det ApplicationContext sammanhanget),
på System.Windows.Forms.Application. Run (bilda mainForm),
på OptoTest.Program.Main () i C:\Documents and Settings\user\My dokument \ visuellt hjälpmedelstudion 2008 \ projekterar \,OptoTest \ OptoTest \ Program.cs: line 18

för System.AppDomain-. _nExecuteAssembly (den Assembly enheten, stränger [] args), på
för System.AppDomain.ExecuteAssembly (assemblyFile String, bevisar assemblySecurity, stränger [] args), på
för Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () på System.Threading.ThreadHelper. ThreadStart_Context (Object påstår),

för System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback tillbakaringning, anmärker statligt), på System.Threading.ThreadHelper. ThreadStart ()
InnerException:

> för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
" codeBody " class= " notpretty " >using System.Runtime.InteropServices för
" klar "

Svar : fel med utsidadll

Det ser något liknande fungera som dig, att kalla för ar tar en temperatur, konverterar den och passerar därefter den tillbaka I det samma argumentet. Skulle detta indikerar att det första argumentet är en pekare till en dubblett i stället för en dubblett värderar faktiskt. Försök att ändra ditt DLLImport meddelande för att vara som följer (notera den ökade referensen för dubbletten):

[DllImport (”OP930M.DLL”)]
        privat statisk elektricitet extern int OP930_GetTemperature (dubbel tempC för referens, int-enheter);

Andra lösningar  
 
programming4us programming4us