/*

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;

}

Re: From Console::WriteLine() to message box by Herfried

Herfried
Sat Jun 02 07:18:18 CDT 2007

"Allen Maki" <allenmaki@sbcglobal.net> schrieb:
> 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.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>


Re: From Console::WriteLine() to message box by Allen

Allen
Sat Jun 02 19:19:36 CDT 2007

Sorry Herfried,
It does not work.

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:uU4$YARpHHA.588@TK2MSFTNGP06.phx.gbl...
> "Allen Maki" <allenmaki@sbcglobal.net> schrieb:
>> 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.
>
> --
> M S Herfried K. Wagner
> M V P <URL:http://dotnet.mvps.org/>
> V B <URL:http://dotnet.mvps.org/dotnet/faqs/>



Re: From Console::WriteLine() to message box by Herfried

Herfried
Sat Jun 02 19:47:20 CDT 2007

"Allen Maki" <allenmaki@sbcglobal.net> schrieb:
> 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.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>