From Console::WriteLine() to message box

A

Allen Maki

/*

I am trying to use message box instead of Console::WriteLine() to upgrade my
code from just using the console to using GUI.

In the bottom 2 lines, #1 works, but I have hard time to make # 2 works. Can
anybody give a hand here to make the information to be shown on the message
box instead of being shown on the console.

I am using visual C++ .NET 2003

Thanks

*/



















#include "stdafx.h"

#include <gcroot.h>

#using <mscorlib.dll>

using namespace System;

using namespace System::Runtime::InteropServices;

typedef void* HWND;

[DllImportAttribute("User32.dll", CharSet=CharSet::Auto)]

extern "C" int MessageBox(HWND hw, String* text,

String* caption, unsigned int type);

__gc class MClass

{

public:

int val;

MClass(int n) //costructor

{

val = n;

}

};

class UClass

{

public :

gcroot<MClass*> mc;

UClass(MClass* pmc) //constructor

{

mc = pmc;

}

int getValue() //get function

{

return mc->val;

}

};

int _tmain()

{

Console::WriteLine(S"Testing...");

//Create a managed object and assign 3 to it

MClass* pm = new MClass (3);

//Create an unmanaged object and assign the value of the manged object (pm)
to it

UClass uc(pm);


Console::WriteLine(S"Value is {0}", __box(uc.getValue())); //<-------- This
will work # 1

//MessageBox(0, uc.getValue(), S"Message Box...", 0 ); //<------- this will
not work # 2





return 0;

}
 
H

Herfried K. Wagner [MVP]

Allen Maki said:
I am trying to use message box instead of Console::WriteLine() to upgrade
my code from just using the console to using GUI.

In the bottom 2 lines, #1 works, but I have hard time to make # 2 works.
Can anybody give a hand here to make the information to be shown on the
message box instead of being shown on the console.

Remove the 'DllImport' and use 'System::Windows::Forms::MessageBox' instead,
which provides a 'Show' method.
 
A

Allen Maki

Sorry Herfried,
It does not work.

Herfried K. Wagner said:
Remove the 'DllImport' and use 'System::Windows::Forms::MessageBox'
instead, which provides a 'Show' method.
 
H

Herfried K. Wagner [MVP]

Allen Maki said:
Sorry Herfried,
It does not work.

Are you sure you didn't forget to "import" "System.Windows.Forms.dll", which
contains the 'MessageBox' class? If this doesn't fix your problem, I
suggest to post the code that doesn't work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top