Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 21:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



void by call

Discussion on void by call within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
void by call

Hey gibt es ne möglichkeit ne void auf zu rufen über einen String?

In autoit ist es call()
Terrat is offline  
Old 09/01/2014, 21:10   #2


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Ich vermute einfach mal, dass du mit "void" eine Funktion oder einen Funktionspointer meinst, da es sonst wenig Sinn macht. Ferner nehme ich einfach mal C++ und nicht C an. Mit C ist das auch möglich, aber halt über Umwege und nicht so "schön", wie mit C++.
Standardmäßig gibt es eigentlich keine Information im Kompilat darüber, wie eine Funktion heißt, wenn sie nicht gerade exportiert wird.
Aber du könntest dieses Feature quasi selbst einzubauen, indem du beispielsweise eine std::map benutzt, welche den Funktionsnamen mit einem Pointer zu der Funktion verknüpft.
Sieht ca. so aus (könnte ggf. Fehler enthalten, hab den Code nur aus dem Kopf geschrieben und nicht getestet):
Code:
// functions
void PrintA() { std::cout << "A" << std::endl; }
void PrintB() { std::cout << "B" << std::endl; }
void PrintC() { std::cout << "C" << std::endl; }

std::map<std::string, void(*)()> functions{ {"FuncA", &PrintA}, {"FuncB", &PrintB}, {"C", &PrintC} };
...
std::string userInput;
// let user choose string
// make sure user enters a valid string ("A", "B" or "C") by checking with functions.find
functions[userInput](); // call functions
Wichtig ist, dass die Funktionen, die du in die Map tust eine einheitliche Signatur haben. Genauer gesagt wenigstens eine, die man einheitlich aufrufen kann, ohne das Programm zum Crash zu führen.
Die Map könnte natürlich auch zur Laufzeit noch verändert werden oder so, muss aber natürlich nicht. In letzterem Fall könnte man sie auch gleich const setzen.
Generell solltest du aber erstmal schauen, ob du's WIRKLICH brauchst, eine Funktion anhand ihres Namens aufzurufen und ob nicht vielleicht ein einfacher Funktionspointer, den man vielleicht zur Laufzeit ändert oder dergleichen, ausreicht.
Hoffe, ich konnte dir helfen
Jeoni
Jeoni is offline  
Thanks
1 User
Old 09/01/2014, 22:26   #3

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
@Jeoni: Würde eher std::function<void()> verwenden, Funktionszeiger werden dann impliziert konvertiert.

@Dreamsläps dynamisch (wie vermutlich bei AutoIt) wird das nicht gehen, die Informationen müssen beim Kompilieren vorliegen. Wenn es um dein Projekt geht: erwarte einfach ein Funktionsobjekt, an das du Nachrichten sendest.
snow is offline  
Thanks
3 Users
Old 09/02/2014, 17:38   #4
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Nein es geht mir darum:
Ich habe eine DLL mit der funktion CALL_VOID
Und der über dir hat mir genau das gegeben was ich gebraucht hab danke
Kann geclosed werden
Terrat is offline  
Reply


Similar Threads Similar Threads
Void Els und WPE?
10/27/2014 - Elsword - 6 Replies
Ich hab WPE usw alles konfiguriert und nun wollt ich wissen woher ich die karten bekomme zum npc spawnen und wie das dann mit wpe funktioniert mit dem senden das die npcs spawnen ?
[WPE]Elsword void
08/31/2014 - Elsword - 20 Replies
Also da ich momentan ziemlich viel langeweile habe dachte ich mir man könnte doch ein kleines "projekt" machen das einzigste was ihr braucht ist ein funktions tüchtiges WPE also falls ihr interesse habt schreibt es hier drunter. Projekt In dem Projekt geht es darum das wir neu anfangen und dann bis lvl 70 lvln aber wie gesagt nicht normal sondern hmm... durch einen anderen weg :D (WPE)
Warframe - Void
05/21/2014 - General Gaming Discussion - 2 Replies
Hey, viele von euch werden wohl Warframe zocken und nun hätte ich mal eine Frage und würde zugleich nach ein paar Mitspielern suchen. Ich habe folgendes Problem... Ich habe schon ein paar Keys zum Void gefunden und bin stark überzeugt von dem Warframe "Nekros" und wollte ihn mir nach und nach farmen, jedoch weiß ich nicht, ob ich meine Mitspieler schon vorher einladen muss oder ob mir wieder andere Spieler einfach zugewiesen werden. Ich habe es auch nicht getestet, damit mir der Key nicht...
Void Problem
12/15/2011 - CO2 Private Server - 5 Replies
Problem has been Fixed
I void I
04/23/2011 - Runescape Trading - 3 Replies
Grr



All times are GMT +1. The time now is 21:57.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.