Click here to Skip to main content
15,880,427 members
Home / Discussions / Managed C++/CLI
   

Managed C++/CLI

 
AnswerRe: Convert/cast System::Array class to List Pin
Victor Nijegorodov10-Jun-21 20:27
Victor Nijegorodov10-Jun-21 20:27 
AnswerRe: Convert/cast System::Array class to List Pin
Richard Andrew x6427-Jun-21 6:52
professionalRichard Andrew x6427-Jun-21 6:52 
QuestionC# and c++/cli problem on x86 OS Pin
Duc Axenn30-May-21 10:25
Duc Axenn30-May-21 10:25 
AnswerRe: C# and c++/cli problem on x86 OS Pin
Dave Kreskowiak10-Jun-21 18:51
mveDave Kreskowiak10-Jun-21 18:51 
QuestionManaged c++ how to memcpy a handle reference Pin
yehiga146727-May-21 23:25
yehiga146727-May-21 23:25 
AnswerRe: Managed c++ how to memcpy a handle reference Pin
Victor Nijegorodov28-May-21 0:25
Victor Nijegorodov28-May-21 0:25 
GeneralRe: Managed c++ how to memcpy a handle reference Pin
yehiga146728-May-21 0:55
yehiga146728-May-21 0:55 
GeneralRe: Managed c++ how to memcpy a handle reference Pin
Victor Nijegorodov28-May-21 1:45
Victor Nijegorodov28-May-21 1:45 
GeneralRe: Managed c++ how to memcpy a handle reference Pin
Richard MacCutchan28-May-21 2:01
mveRichard MacCutchan28-May-21 2:01 
GeneralRe: Managed c++ how to memcpy a handle reference Pin
yehiga146728-May-21 2:26
yehiga146728-May-21 2:26 
AnswerRe: Managed c++ how to memcpy a handle reference Pin
Fly Gheorghe25-Jan-22 9:15
Fly Gheorghe25-Jan-22 9:15 
QuestionHow to make Serial Port static from the designer? Pin
yehiga146726-May-21 17:11
yehiga146726-May-21 17:11 
SuggestionRe: How to make Serial Port static from the designer? Pin
Richard MacCutchan26-May-21 21:14
mveRichard MacCutchan26-May-21 21:14 
GeneralRe: How to make Serial Port static from the designer? Pin
yehiga146726-May-21 21:18
yehiga146726-May-21 21:18 
GeneralRe: How to make Serial Port static from the designer? Pin
Richard MacCutchan26-May-21 21:59
mveRichard MacCutchan26-May-21 21:59 
QuestionManaged c++ float/double/integer to String and vice-versa? Pin
yehiga146725-May-21 22:46
yehiga146725-May-21 22:46 
AnswerRe: Managed c++ float/double/integer to String and vice-versa? Pin
Victor Nijegorodov25-May-21 23:05
Victor Nijegorodov25-May-21 23:05 
GeneralRe: Managed c++ float/double/integer to String and vice-versa? Pin
yehiga146726-May-21 0:12
yehiga146726-May-21 0:12 
GeneralRe: Managed c++ float/double/integer to String and vice-versa? Pin
Victor Nijegorodov26-May-21 0:41
Victor Nijegorodov26-May-21 0:41 
QuestionButton image is not updating to new image when Serial Port received new data Pin
yehiga146725-May-21 1:03
yehiga146725-May-21 1:03 
AnswerRe: Button image is not updating to new image when Serial Port received new data Pin
jsc4225-May-21 2:43
professionaljsc4225-May-21 2:43 
GeneralRe: Button image is not updating to new image when Serial Port received new data Pin
yehiga146725-May-21 19:10
yehiga146725-May-21 19:10 
GeneralRe: Button image is not updating to new image when Serial Port received new data Pin
jsc4225-May-21 22:22
professionaljsc4225-May-21 22:22 
GeneralRe: Button image is not updating to new image when Serial Port received new data Pin
yehiga146725-May-21 22:53
yehiga146725-May-21 22:53 
QuestionHow to pass a function pointer an argument in managed C++ Pin
yehiga146724-May-21 1:25
yehiga146724-May-21 1:25 
I am trying to call a function defined in the parent class via the object. But I am getting the error a pointer to member is not valid for a managed class. How can I achieve what I wanted? My expected output is to display the text "Called from child"


MyChild.h
ref class MyChild
{

       System:Void(*my_func_ptr)(int, char*);
       typedef System:Void(*MyFuncPtrType)(int, char*);
       MyFuncPtrType my_func_ptr;


	public: MyChild ( System:Void(*some_func)(int, char*)){

		my_func_ptr = some_func;
	}

	public: System::Void  Child_ButtonClicked(System::Object^ sender, System::EventArgs^ e){
		my_func_ptr();
	}

}



MyForm.h

#include "MyChild.h"

public ref class MyForm : public System::Windows::Forms::Form
{
.
.
.
	private: static System:Void test(int, char*) { //Update
		MessageBox::Show("Called from child");
	}


	private: System::Void MyForm::MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
		MyChild^ child= gcnew MyChild( MyForm::test); //type incompatible error in this line
		child -> test(1,"random");
	}


}




Update 2, Previous problem for //type incompatible error in this line is solved using the following way below.





MyChild.h
ref class MyChild
{
	   
	   
	private:     System::Void(*my_func_ptr)(int, char*);

	public:	System::Void doFunction(int A, char* B) {
           (*my_func_ptr)(A,B);
       }


	public: MyChild ( System::Void(*func)(int A, char* B)){

		my_func_ptr = func;
	}

	public: System::Void  Child_ButtonClicked(System::Object^ sender, System::EventArgs^ e){
		doFunction(1,"random");  //the arguments here are not used in later program, it is just for testing a function ptr with arguments
	}

}



MyForm.h

#include "MyChild.h"

public ref class MyForm : public System::Windows::Forms::Form
{
.
.
.

	   typedef System::Void (*callback_function)(int, char*); 
	   
	   
	private: static System:Void test(int, char*) {
		MessageBox::Show("Called from child");
	}


	private: System::Void MyForm::MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
	
	
	callback_function disc;

	disc = (callback_function)(MyGUI::MyForm::test);
	
		MyChild^ child= gcnew MyChild( disc);
		child -> doFunction(1,"random");
	}


}


For now, everything is solved but I am still unsure to the reason for incompatibility for argument and parameter having same type. I will do more trails and see if this is a stable way of implementation. Thanks for your help Richard Andrew x64 !

modified 25-May-21 0:07am.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.