Pytanie : błąd z external dll

I używać external dll i dostawać the następujący błąd:

Attempted lub - ochraniać pamięć. Pamięć być często przejaw że inny pamięć być corrupt.

System.AccessViolationException być unhandled
Message= " Próbować lub - ochraniać pamięć. Pamięć być często przejaw że inny pamięć być skorumpowany. "
Source= " OptoTest "
StackTrace:
przy OptoTest.Form1.OP930_GetTemperature (Double tempC, Int32 jednostka)
przy OptoTest.Form1.btnTempGet_Click (Object nadawca, EventArgs e) w C:\Documents and Settings\user\My Dokument \ Wizualny Studio 2008 \ Projekt \ OptoTest \ OptoTest \ Form1.cs: kreskowy 102
przy System.Windows.Forms.Control.OnClick (EventArgs e)
przy System.Windows.Forms.Button.OnClick (EventArgs e)
przy System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent)
przy System.Windows.Forms.Control.WmMouseUp (Message& m, MouseButtons guzik, Int32 stuknięcie)
przy System.Windows.Forms.Control.WndProc (Message& m)
przy System.Windows.Forms.ButtonBase.WndProc (Message& m)
przy System.Windows.Forms.Button.WndProc (Message& m)
przy System.Windows.Forms.Control. ControlNativeWindow.OnMessage (Message& m)
przy System.Windows.Forms.Control. ControlNativeWindow.WndProc (Message& m)
przy System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
przy System.Windows.Forms.UnsafeNativeMethods. DispatchMessageW (MSG& msg)
przy System.Windows.Forms.Application. ComponentManager. System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (Int32 dwComponentID, Int32 powód, Int32 pvLoopData)
przy System.Windows.Forms.Application. ThreadContext.RunMessageLoopInner (Int32 powód, ApplicationContext kontekst)
przy System.Windows.Forms.Application. ThreadContext.RunMessageLoop (Int32 powód, ApplicationContext kontekst)
przy System.Windows.Forms.Application. Run (Formularzowy mainForm)
przy OptoTest.Program.Main () w C:\Documents and Settings\user\My Dokument \ Wizualny Studio 2008 \ Projekt \OptoTest \ OptoTest \ Program.cs: line 18
przy System.AppDomain. _nExecuteAssembly (Assembly zgromadzenie, Smyczkowy [] args)
przy System.AppDomain.ExecuteAssembly (String assemblyFile, Dowód assemblySecurity, Smyczkowy [] args)
przy Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
przy System.Threading.ThreadHelper. ThreadStart_Context (Object stan)
przy System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Przedmiot stan)
przy System.Threading.ThreadHelper. ThreadStart ()
InnerException:

(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
using System.Runtime.InteropServices;

[DllImport ("OP930M.DLL")]
        intymny statyczny statyczny int OP930_GetTemperature (dwoisty tempC, int jednostka);

        intymny kawitacyjny btnTempGet_Click (przedmiot nadawca, EventArgs e)
        {
            dwoisty zastępca = 0.0;
            status = OP930_GetTemperature (zastępca, 1); //errors tutaj
            Label1.Text = Convert.ToString (zastępca);
        }

Odpowiedź : błąd z external dll

Ono patrzeć jak the funkcja ty ar brać temperaturowy, nawracać ono i wtedy przechodzić ono z powrotem i the ten sam argument. Wartość wskazywać że the pierwszy argument być właściwie pointer kopia zamiast dwoisty wartość. Próba twój DLLImport oświadczenie podążać (zauważać the dodawać ref przed the kopia):

[DllImport ("OP930M.DLL")]
        intymny statyczny statyczny int OP930_GetTemperature (ref dwoisty tempC, int jednostka);

Inne rozwiązania  
 
programming4us programming4us