Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Printing variable values to console visual c++ windows store Modern UI app

I'm just starting learning C++/XAML windows store app development but for the life of me I can't find a nice way to print variable values to the "Output" window in VS2012.

Debug.WriteLine() doesn't seem to exist for Windows Store apps and I can't find a way to print other than OutputDebugString() which I can't use to print variable values (without some heavy formatting).

Is there just an easy way to print the example line:

mouse position X: 12

for example, where 12 is an integer that comes from MouseDelta.

Thanks for your time,

Poncho

like image 639
poncho Avatar asked Oct 21 '22 07:10

poncho


2 Answers

Not really, no. You could write a little function that formatted like printf and passed along the resulting string to OutputDebugString() but there's nothing more straightforward available.

I guess you could use ToString(), Platform::String::operator+, and Platform::String::Data() to accomplish this; though it's a little ugly:

OutputDebugString( ("mouse position X:" + MouseDelta.X.ToString())->Data() );

like image 197
Andy Rich Avatar answered Oct 24 '22 12:10

Andy Rich


Here is a nice alternative: http://seaplusplus.com/2012/06/25/printf-debugging-in-metro-style-apps/, basically it allocates a console for your Windows Store App, obviously this will fail certification but given that this may be just for debug purposes only, it will fine. I'm copying the relevant code here:

// Include Windows.h for WINBASEAPI and WINAPI:
#include <Windows.h>

// Declare AllocConsole ourselves, since Windows.h omits it:
extern "C" WINBASEAPI int WINAPI AllocConsole();

auto main(Platform::Array<Platform::String^>^) -> int
{
    AllocConsole();

    std::wcout << L"Hello there!" << std::endl;
    std::getchar();

    return EXIT_SUCCESS;
}

However if you want to see such output inside your app, then you may want to use Console Class for Modern UI Apps which implements part of the .NET System.Console and can be safely used inside Windows Store apps.

like image 25
Rafael Avatar answered Oct 24 '22 10:10

Rafael