kernel32 console bug?

Eric Pouech eric.pouech at gmail.com
Wed Dec 20 02:05:08 CST 2006


if you move the test() call a couple of lines below, when the console is
actually created, it should work.
for the actual program to run, you should use wineconsole.
A+


2006/12/20, Robert Reif <reif at earthlink.net>:
>
> I get an error when running a windows console program on wine.  It
> appears that in wine, GetStdHandle(STD_INPUT_HANDLE) doesn't return a
> handle to a console so GetConsoleMode() on that handle fails.  The
> actual programs that fail are at: http://simh.trailing-edge.com/
>
> Here is a simple patch to kernel32/tests/console.c to demonstrate the
> problem:
>
>
>
>
> diff -p -u -r1.2 console.c
> --- dlls/kernel32/tests/console.c       10 Oct 2006 18:19:57 -0000
> 1.2
> +++ dlls/kernel32/tests/console.c       20 Dec 2006 07:20:06 -0000
> @@ -552,12 +552,31 @@ static void testCtrlHandler(void)
>     ok(GetLastError() == ERROR_INVALID_PARAMETER, "Bad error %u\n",
> GetLastError());
> }
>
> +static void test(void)
> +{
> +    HANDLE std_input;
> +    DWORD saved_mode;
> +
> +    std_input = GetStdHandle(STD_INPUT_HANDLE);
> +    ok(std_input != INVALID_HANDLE_VALUE,
> +       "GetStdHandle(STD_INPUT_HANDLE) returned INVALID_HANDLE_VALUE\n");
> +
> +    if (std_input != INVALID_HANDLE_VALUE)
> +    {
> +        BOOL status;
> +        status = GetConsoleMode(std_input, &saved_mode);
> +        ok(status != FALSE, "GetConsoleMode() failed: %08x\n",
> GetLastError());
> +    }
> +}
> +
> START_TEST(console)
> {
>     HANDLE hConIn, hConOut;
>     BOOL ret;
>     CONSOLE_SCREEN_BUFFER_INFO sbi;
>
> +    test();
> +
>     /* be sure we have a clean console (and that's our own)
>      * FIXME: this will make the test fail (currently) if we don't run
>      * under X11
>
>
>
>
>
>


-- 
Eric Pouech
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winehq.org/pipermail/wine-devel/attachments/20061220/a4cf5b80/attachment.html


More information about the wine-devel mailing list