Tag: pinvoke
P/Invoke ist eine Implementierung der Spezifikation, die von Microsoft erstellt die Common Language Infrastructure (CLI) für den Aufruf von nativen code-Bibliotheken, die von verwaltetem code.
1
Antworten
Ich habe eine unmanaged C++ dll die aufgerufen wird, aus einer C# - app, bemühe ich mich, die C# - app, um alle Ausnahmen abfangen, so dass im Falle der dll-Fehler aufgrund einer nicht verwalteten Ausnahme dann
6
Antworten
Ich bin auf der Suche nach einer Möglichkeit zur Durchführung von Zeiger-Operationen in C# - oder .NET im besonderen. Ich möchte etwas sehr einfaches machen Dass ein Zeiger IntPtr ich will IntPtr Objekt Punkte, die zu 2
2
Antworten
Ich versuche zu nennen, eine einfache C-Funktion aus einer externen DLL aus meiner C#-Anwendung. Diese Funktion ist definiert als void set_param(const char *data) Nun habe ich einige Probleme mit dieser Funktion: Wie kann ich festlegen, das "const"
4
Antworten
Ich habe ein WinForms-Projekt, und wenn der Benutzer möchte eine debug-Konsole, die ich zuweisen eine Konsole mit AllocConsole(). Alle die Ausgabe in der Konsole funktioniert normalerweise mit der Ziel-Architektur auf "Any CPU", aber wenn ich es ändern
2
Antworten
Arbeite ich an einer Anwendung, die Spaziergänge durch jede Datei in einige Verzeichnisse und ein paar Aktionen mit diesen Dateien. Unter anderem muss ich die Datei abzurufen, die Größe und das Datum Wann diese Datei geändert wurde.
6
Antworten
Beim übersetzen des Windows-API (inklusive Datentypen) in P/Invoke, sollte ich ersetzen DWORD-Wert mit int oder uint? Ist es in der Regel nicht, aber ich sehe Menschen, die mit int überall statt (ist es nur, weil der CLS
2
Antworten
Ist es falsch zu pinvoke user32.dll auf 64-bit-Windows eine 64-bit-app? Ich habe dies getan, erfolgreich eine Anzahl von Zeiten, und hatte nie einen Fehler, aber es scheint widersprüchlich. Ich suchen soll user64.dll statt? InformationsquelleAutor der Frage James
1
Antworten
Ich versuche, die absolute einfachste minimal-Beispiel, wie übergeben Sie Zeichenfolgen zu und von einer C++ - DLL in C#. Mein C++ sieht wie folgt aus: using std::string; extern "C" { string concat(string a, string b){ return a
3
Antworten
Ich Plane, verwenden Sie verschiedene Objekte, die ausgesetzt sind als COM-Objekte. Um Sie einfacher zu bilden zu verwenden, die ich möchte, wickeln Sie Sie als C# - Objekte. Was ist der beste Ansatz für diese? InformationsquelleAutor der
4
Antworten
Weiß jemand, wie die RegisterHotKey/UnregisterHotKey-API-Aufrufe in einer Konsolenanwendung? Ich gehe davon aus, dass die Aufstellung/entfernen Sie die hotkey-Taste ist die gleiche, aber wie bekomme ich den Anruf zurück, wenn die Taste gedrückt wurde? Jedes Beispiel, das ich
4
Antworten
Ich bin Herumspielen mit irgendeinem windows-Funktionen, die mithilfe von p/invoke. Gelegentlich bekomme ich einen Fehler-code, der nicht ERROR_SUCCESS (so ein seltsamer name). Gibt es eine Möglichkeit zu suchen, diese bis in das Programm? Forexample, wenn ich erhalten
5
Antworten
Stolperte ich über ein tool erzeugt, dass P/Invoke-Signaturen für die Microsoft-unmanaged DLLs: PInvoke Interop Assistant Gibt es ein ähnliches tool, das generieren von P/Invoke-Signaturen für Dritte verwalteten DLLs? Abwechselnd, jede mögliche Weise zu füttern, die eine Drittanbieter-DLL
18
Antworten
Wie kann ich meine WPF-Anwendung, die vor dem desktop? Bisher habe ich versucht: SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle); Keiner von denen sind, die Arbeit zu machen (Marshal.GetLastWin32Error()
5
Antworten
Ich bin immer dieser komische Fehler auf einigen Sachen, die ich benutzt habe für eine Weile. Es kann eine neue Sache, die in Visual Studio 2010, aber ich bin mir nicht sicher. Ich bin versucht zu rufen
15
Antworten
Bin ich den Aufruf von Funktionen von einem 32-bit-unmanaged-DLL unter einer 64-bit-system. Was ich bekomme ist: BadImageFormatException: es wurde versucht ein Programm mit einem falschen format. (Ausnahme von HRESULT: 0x8007000B) Anfangs hatte ich meine Projekte, die Alle
14
Antworten
Ich habe die dll-Bibliothek mit nicht verwalteten C++ - API-code, den ich verwenden müssen, meine .NET 4.0-Anwendung. Aber jede Methode, die ich versuche zu laden meine dll bekomme ich eine Fehlermeldung: Unable to load DLL 'MyOwn.dll': Das
5
Antworten
Nach der Umstellung auf VS2010, managed debug-Assistent angezeigt wird ein Fehler über eine unausgewogene stack aus einen Anruf an eine nicht verwaltete C++ - Funktion aus einer C# - Anwendung. Usuals suspects offenbar nicht die Ursache des
7
Antworten
Wie finde ich von mutex-handle in C#, dass ein mutex wird erworben? Wenn mutex.WaitOne(timeout) timeouts, es gibt false. Jedoch, wie kann ich feststellen, dass von den mutex-handle? (Vielleicht mithilfe von p/invoke.) UPDATE: public class InterProcessLock : IDisposable
7
Antworten
Dies ist, was ich habe, so weit: Dim bProcess = Process.GetProcessesByName("By").FirstOrDefault If bProcess IsNot Nothing Then SwitchToThisWindow(bProcess.MainWindowHandle, True) Else Process.Start("C:\Program Files\B\B.exe") End If Es hat zwei Probleme. Einige Leute haben mir gesagt, dass SwitchToThisWindow ist depricated. Wenn
6
Antworten
Ich suchte eine Menge für die Methode zu bekommen übergeordneten Prozess .NET, fand aber nur ein P/Invoke Weg. InformationsquelleAutor der Frage abatishchev | 2008-12-27
2
Antworten
Ich bin ein erfahrener .Net-Programmierer sind, aber nicht kompiliert ein C/C++ - Programm in meinem Leben. Jetzt habe ich das C-dll, Kopf-und Dokumentation (3rd party, nicht von der Win-API), von denen muss ich anrufen über zehn Methoden.
6
Antworten
Entwickelt ich eine GUI-test-framework, das tut integrationtesting unserer Unternehmens-website auf basis eines Zeitplans. Wenn etwas nicht funktioniert, werde es einen screenshot von dem desktop, unter anderem. Läuft unbeaufsichtigt auf einem eingeloggten Benutzer auf einem dedizierten Windows-Server-2008. Das
2
Antworten
Ich bin momentan dabei, eine sehr einfache PInvoke Beispiel: extern "C" __declspec(dllexport) int Add(int a, int b) { return a + b; } [DllImport("CommonNativeLib.dll")] extern public static int Add(int a, int b); return NativeMethods.Add(a, b); Aber immer,
2
Antworten
Ich bin versucht, zu schreiben, etwas C# - code, der eine Methode aufruft, die aus einer nicht verwalteten DLL. Der Prototyp für die Funktion in der dll ist: extern "C" __declspec(dllexport) char *foo(void); In C#, habe ich
4
Antworten
Ich bin mit Pinvoke für die Interoperabilität zwischen Native(C++ -) code und Managed(C#) code. Was ich erreichen will ist get some text von native code in mein managed code. Für diese versuche ich viele viele Dinge,e.g Weitergabe
3
Antworten
Beispiel C-API-Signatur: void Func(unsigned char* bytes); In C, wenn ich will, übergeben Sie einen Zeiger auf ein array, was ich tun kann: unsigned char* bytes = new unsigned char[1000]; Func(bytes); //call Wie übersetze ich die oben genannten
2
Antworten
Ich Schreibe ein kleines C# - app, um ein Gerät deaktivieren zu lassen (mein laptop-touchpad) immer wenn eine andere Maus-Gerät erkannt wird, und aktivieren Sie das touchpad, wenn mal wieder eine Maus wird nicht erkannt. Ich bin
6
Antworten
Ich habe die folgende Funktion: public static extern uint FILES_GetMemoryMapping( [MarshalAs(UnmanagedType.LPStr)] string pPathFile, out ushort Size, [MarshalAs(UnmanagedType.LPStr)] string MapName, out ushort PacketSize, ref Mapping oMapping, out byte PagesPerSector); Möchte ich rufen wie diese: FILES_GetMemoryMapping(MapFile, out size, MapName,
2
Antworten
Ich Schreibe ein C# - Anwendung, die Interop-Dienste können Sie auf Funktionen zugreifen, die in eine native C++ DLL. Ich bin schon mit über 10 verschiedenen Funktionen arbeiten. Nun bin ich nicht sicher, wie Sie Sie zu
5
Antworten
Ich wechselte zu von vs2010 vs2008. Genau die gleiche Lösung, außer jetzt jeden einzelnen Aufruf einer C++ - dll liefert eine 'pinvokestackimbalance' Ausnahme. Diese Ausnahme nicht entlassen werden, im Jahr 2008. Ich habe vollständigen Zugriff auf die
5
Antworten
Ich bin versucht zu rufen, die folgende triviale C-Funktion aus C#: SIMPLEDLL_API const char* ReturnString() { return "Returning a static string!"; } Mit den folgenden P/Invoke Deklaration (mit oder ohne return-Attribut, es macht keinen Unterschied): [DllImport("SimpleDll")] [return:
2
Antworten
Beginnen, fand ich diesen code bei http://swigartconsulting.blogs.com/tech_blender/2005/08/how_to_move_the.html: public class Win32 { [DllImport("User32.Dll")] public static extern long SetCursorPos(int x, int y); [DllImport("User32.Dll")] public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point); [StructLayout(LayoutKind.Sequential)] public struct POINT { public int
7
Antworten
Hier ist die situation, ich bin mit einem C dll in mein dot.net -Anwendung. Es sind 2 dlls, eine ist 32bit genannt MyDll32.dll und der andere ist ein 64-bit-version genannt MyDll64.dll. Gibt es eine statische variable halten
4
Antworten
Habe ich eine Klasse in C++ implementiert, ist verantwortlich für die arithmetische Berechnung des Programms und einer Benutzeroberfläche mit WPF. Ich verarbeite die Eingabe mit C# aber wie kann ich meine C++ - Klasse? Ich habe gesehen,
4
Antworten
Ich bin kämpfen, um gemeinsam ein funktionierendes Beispiel von pinvoke ' Ing CreateJobObject und SetInformationJobObject. Durch verschiedene google-suchen (einschließlich Russisch und Chinesisch Beiträge!) Ich habe zusammen geflickt, den folgenden code. Ich denke, die definition von JOBOBJECT_BASIC_LIMIT_INFORMATION änderungen
6
Antworten
Frage Ich bin Portierung einer C-Anwendung in C#. Die C-app fordert viele Funktionen von einem 3rd-party-DLL, also schrieb ich P/Invoke-Wrapper für diese Funktionen in C#. Einige dieser C-Funktionen zuordnen Daten, die ich in der C# - app,
7
Antworten
Ich habe eine dll, die in c++ geschrieben ist, habe ich diese dll in mein c# - code. Nach der Suche habe ich gefunden, dass die Verwendung von P/Invoke geben würde, die mir den Zugang zu der
6
Antworten
Ist, gibt es einen Unterschied zwischen den beiden Aussagen: IntPtr myPtr = new IntPtr(0); IntPtr myPtr2 = IntPtr.Zero; Ich habe gesehen, viele Beispiele, die die Verwendung PInvoke, die es vorziehen, die erste syntax, wenn die myPtr argument
2
Antworten
Gegeben, die folgende C-Funktion in einer DLL: char * GetDir(char* path ); Wie würden Sie P/Invoke diese Funktion in C# und dem Marschall der char * richtig. .NET scheint zu wissen, wie zu tun, LPCTSTR aber wenn