Ich bin mir bewusst, dass jeder Prozess seine eigene Speicheradressraum schafft, aber ich habe mich gefragt,Ist es möglich, Funktionszeiger über Prozesse hinweg zu verwenden?
Wenn Verfahren A eine Funktion wie haben war:
int DoStuff() { return 1; }
und einen Zeiger typedef wie:
typedef int(DoStuff_f*)();
und ein Getter-Funktion wie:
DoStuff_f * getDoStuff() { return DoStuff; }
und eine magische Art und Weise mit Verfahren B zu kommunizieren über ... sagen boost :: inter
wäre es möglich, die Funktionszeiger übergeben B zu verarbeiten und
Verfahren A den DoStuff von Verfahren B direkt anrufen?
Bitte geben Sie das O/S an, mit dem Sie es zu tun haben. Die Antwort auf die Frage ist für vxWorks im Vergleich zu Linux sehr unterschiedlich. – kmarsh
Einverstanden - alle "Nein" Antworten sollten als "nicht portabel" und/oder "nicht auf meinem Betriebssystem" verstanden werden. Auf einigen Plattformen mit sehr leichten Betriebssystemen gibt es keinen geschützten Speicher, und es wird einfach funktionieren. –
Ich nehme an, es ist Windows. Meine Annahme basiert auf frühen Macieks Fragen und dem Stil der Funktionsbenennung :) –