Tag: calling-convention
Eine Aufruf-Konvention bezieht sich auf die Art und Weise eine Funktion überträgt Parameter an eine aufgerufene Funktion aus und erhält den Rückgabewert.
1
Antworten
Ich hatte dieses problem mit C#, wenn ich mit DotNet1.1 Das problem ist. Ich habe eine nicht verwaltete dll, die hat eine Funktion, die eine Funktion Zeiger (neben anderen Argumenten). Wenn ich erkläre das DLLImport in C#
10
Antworten
Kann ich verstehen, diese Anforderung für die alten PPC-RISC-Systemen und auch für x86-64, sondern für die alte erprobte und wahre x86? In diesem Fall wird der Stapel ausgerichtet werden muss auf 4-byte-Grenzen nur. Ja, einige der MMX/SSE
9
Antworten
Warum sollte default-Parameter Hinzugefügt werden, der Letzte in C++ - Funktionen? Es ist nicht nutzlos. Verständnis design-Sprache (und insbesondere die Gestaltung der Sprache(N), die Sie verwenden) sollte IMO gefördert werden. Um dies zu tun, unter andere Dinge,
2
Antworten
Die x86-64-System V ABI (auf alles außer Windows) verwendet, um live bei http://x86-64.org/documentation/abi.pdf, aber diese site hat jetzt gefallen aus dem internet. Gibt es eine neue maßgebliche Hause für das Dokument? Die 0.99.6 Entwurf ist die neueste
2
Antworten
Ich Schreibe eine DLL, die für eine Drittanbieter-Anwendung. Die wichtigsten software-Ingenieur erwähnt, dass die Anwendung die __cdecl - (/Gd) - Aufrufkonvention. Muss ich sicherstellen, dass ich es auch benutzen. Zusätzlich, der Dritte hat für mich eine C++
4
Antworten
int max(int n, ...) Ich bin mit cdecl Aufrufkonvention, wo der Aufrufer bereinigt, die variable, nach der angerufene zurück. Ich bin daran interessiert zu wissen, wie die Makros va_end, va_start und va_arg Arbeit? Macht den Aufrufer übergeben,
5
Antworten
Es ist schon eine Weile her, seit ich das Letzte codiert, arm-assembler, und ich bin ein wenig eingerostet auf die details. Wenn ich den Aufruf einer C-Funktion von arm, ich habe nur sorgen zu machen über das
4
Antworten
Dies ist, was ich sehe, durch zerlegen für die Aussage function(1,2,3);: movl $0x3,0x8(%esp) movl $0x2,0x4(%esp) movl $0x1,(%esp) call 0x4012d0 <_Z8functioniii> Scheint es, die ret-Adresse ist nicht eingeschoben stack überhaupt,wie funktioniert dann ret Arbeit? InformationsquelleAutor Mask | 2010-03-30
4
Antworten
Ja, ich weiß, dass "cdecl" ist der name einer prominenten-Aufrufkonvention, also bitte nicht erklären, die Aufrufkonventionen für mich. Was ich verlange ist, was die Abkürzung (?) "cdecl" eigentlich steht. Ich denke, es ist eine schlechte Benennung der
4
Antworten
Ist der fastcall-Aufrufkonvention wirklich schneller als andere Aufrufkonventionen, wie cdecl? Gibt es benchmarks gibt, die zeigen, wie die Leistung beeinträchtigt wird, durch den Aufruf Konvention? "Wie ist die performance betroffen Aufruf-Konvention?" Marginal. Außer, wenn es die betroffenen
2
Antworten
Ich arbeite mit der ARM-assembly, wo ich Schreibe eine subroutine, die ich nach dem ARM-Aufrufkonvention(diese müssen integriert werden mit einem separaten höheren Ebene die Umsetzung woanders ) für die übergabe von Parametern und Rückgabewerten. Nun, hier ist
6
Antworten
Ich versuche, ein tieferes Verständnis darüber, wie die low-level-Operationen von Programmiersprachen zu arbeiten und vor allem, wie Sie interagieren mit der OS/CPU. Ich habe wohl gelesen, jede Antwort in jedem stack - /heap-bezogenen thread hier auf Stack Überlauf,
2
Antworten
Das folgende Bild ist aus der wikipedia Eintrag auf call-stack und gibt es etwas, dass ich nicht ganz versteh: Dachte ich, dass der frame-pointer gespeichert, die im ebp-register initialisiert wird, die als solche im Prolog*: push ebp
2
Antworten
Ich würde gerne eine Einzel - (cross-)compiler, um code zu kompilieren für verschiedene ARM-Aufrufkonventionen: da ich immer verwenden möchten, Gleitkomma-und NEON-Anweisungen, ich will nur wählen Sie die hard-float-Aufruf-Konvention oder die soft-float (softfp) - Aufrufkonvention. Mein compiler standardmäßig
1
Antworten
Sah ich an mehreren stellen, dass Microsoft die Aufrufkonventionen für x64 Plattformen wurden eingeengt, um nur einen Aufrufer bereinigt den stack (cdecl), und die Parameter die übergeben werden in einer Kombination von stack und Registern (ich werde
4
Antworten
Ich bin neu in Android-Entwicklung. Ich möchte einen Anruf zu einer Nummer, aber ich will nicht zum speichern der Nummer in meiner Anrufliste. Wie kann ich löschen Sie die Nummer aus der Anrufliste, nachdem Sie den Anruf
3
Antworten
Ich weiß, dass Scala unterstützt call-by-name von ALGOL, und ich glaube, ich verstehe, was das bedeutet, aber können tun Scala call-by-reference wie in C#, VB.NET und C++ kann? Ich weiß, dass Java nicht call-by-reference, aber ich bin
6
Antworten
Gibt es unterschiedliche Aufrufkonventionen zur Verfügung, die in C/C++: stdcallexternpascal usw. Wie viele solcher Aufruf-Konventionen stehen, und was die einzelnen bedeuten? Gibt es irgendwelche links, die diese beschreiben? InformationsquelleAutor der Frage Ram | 2009-06-04
5
Antworten
Ich geschrieben habe, die Funktion 'A' aufrufen, werden einem eine Reihe anderer Funktionen. Speichern re-schreiben-Funktion 'A', möchte ich-pass die Funktion, die aufgerufen werden, als parameter der Funktion 'Ein'. Zum Beispiel: function A{ Param($functionToCall) Write-Host "I'm calling :
3
Antworten
Ich bin derzeit an der Entwicklung einer C++ - Bibliothek für Windows, die werden so verteilt, wie eine DLL. Mein Ziel ist, maximieren die binäre Interoperabilität; genauer gesagt, die Funktionen in meiner DLL verwendet werden muss, der
4
Antworten
AMD hat eine ABI-Spezifikation beschreibt, dass die Aufrufkonvention zu verwenden, die auf x86-64. Alle Betriebssysteme Folgen, außer für Windows gibt es eigene x86-64-Aufrufkonvention. Warum? Kennt jemand die technische, historische oder politische Gründe für diesen Unterschied, oder ist
8
Antworten
Lerne ich über die Win32-Programmierung, und die WinMain Prototyp sieht wie folgt aus: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) War ich verwirrt, was diese WINAPI Bezeichner wurde und fand: #define
19
Antworten
Wir haben vor kurzem versucht, auseinander brechen einige unserer Visual Studio-Projekte in Bibliotheken, und alles schien zu kompilieren und fein in ein test-Projekt mit einer von der Bibliothek Projekte als Abhängigkeit. Jedoch, der Versuch, die Anwendung auszuführen,
2
Antworten
Sagen, dass ich diese Funktion: int func2() { printf("func2\n"); return 0; } Nun erkläre ich einem Zeiger: int (*fp)(double); Dies sollte zeigen Sie auf eine Funktion, der eine double argument und gibt eine int. func2 KEINE argument,
9
Antworten
Denen ich begegnet bin __stdcall eine Menge in diesen Tagen. Und meiner Meinung nach, MSDN nicht erklären sehr deutlich, was es wirklich bedeutet, Wann und warum soll es genutzt werden, wenn überhaupt. Ich würde mich freuen, wenn
1
Antworten
Habe ich versucht, dieses typedef void (* __stdcall MessageHandler)(const Task*); Dieser kompiliert, aber der gibt mir diese Warnung (VS2003): Warnung C4229: Anachronismus verwendet : Modifikatoren auf den Daten werden ignoriert Möchte ich deklarieren, die einen Zeiger auf