System.EntryPointNotFoundException obwohl Funktion genau so definiert
- 
					
					
					
					
 Hallo zusammen, mein eigentliches Programm läuft auf vb.net, ich muss allerdings eine Nachricht an einen anderen Rechner schicken.Diese Kommunikation läuft über ROS. Daher habe ich in C++ eine DLL geschrieben, die in meinem Programm aufgerufen wird. Leider findet vb.net eine Funktion nicht, obwohl ich sie genauso verwende wie vorgesehen. 
 Die Definition in C++extern "C" __declspec(dllexport) void __stdcall InitRosPublisher(Connect2ROS* myClass, std::string rosmaster_str, std::string topic) { //Source:https://stackoverflow.com/questions/7352099/stdstring-to-char std::vector<char> cstr(rosmaster_str.c_str(), rosmaster_str.c_str() + rosmaster_str.size() + 1); char *rosmaster = &cstr[0]; myClass->InitRosPublish(rosmaster, topic); }ich wandle hier ein string zu char *, weil ein String viel einfacher in vb.net zu erzeugen und zuhandlen ist. 
 in vb.net importiere ich die FUnktion erstmal in einer eigenen Klasse<DllImport("SendMsgToROS_final.dll", CallingConvention:=CallingConvention.StdCall)> Public Shared Sub InitRosPublisher(ByVal value As IntPtr, ByVal rosmaster As String, ByVal topic As String) 'topic und Rosmaster festlegen End Subund rufe sie wie folgt in meinem Hauptprogramm auf: topic = Topic_texbox.Text rosmaster = Rosmaster_textbox.Text meineKlasse = importFunctions.InitConnection() importFunctions.InitRosPublisher(meineKlasse, rosmaster, topic)Ich hoffe, dass mir jemand helfen kann viele Grüße 
 Chris
 
- 
					
					
					
					
 https://stackoverflow.com/questions/874551/stdstring-in-c D. h. in den Argumenten std::stringdurchconst char*ersetzen.