On Tuesday, 24 July 2018 at 08:09:33 UTC, ANtlord wrote:

So... how prevent appearing of console on the startup of the application?

Here's my test
---
module HelloMsg;

import core.runtime;
import std.utf;
import core.sys.windows.windows;

auto toUTF16z(S)(S s)
{
    return toUTFz!(const(wchar)*)(s);
}

extern (Windows)
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
    int result;
    void exceptionHandler(Throwable e) { throw e; }

    try
    {

        Runtime.initialize();
result = myWinMain(hInstance, hPrevInstance, lpCmdLine, iCmdShow);
        Runtime.terminate();
    }
    catch (Throwable o)
    {
MessageBox(null, o.toString().toUTF16z, "Error", MB_OK | MB_ICONEXCLAMATION);
        result = 0;
    }

    return result;
}

int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
    MessageBox(NULL, "Hello, Windows!", "Your Application", 0);
    return 0;
}
---

dmd -L/SUBSYSTEM:WINDOWS main.d
main.obj : error LNK2019: unresolved external symbol MessageBoxW referenced in function WinMain

dmd -L/SUBSYSTEM:WINDOWS main.d User32.lib
Success!

Executing from PowerShell: no console
Executing from Command Prompt: no console
Double-clicking in Explorer: no console

Windows 10 64-bit

Mike

Reply via email to