import std.stdio;
import core.sys.windows.windows;

int main(string[] argv)
{
        HGDIOBJ h;

        // Compile error:
// Error 1 Error: main.foo called with argument types (void*) matches both: D:\Projetos-D\ConsoleApp1\main.d 12
        // Error        2       main.foo(void* h)       
D:\Projetos-D\ConsoleApp1\main.d        17
        // Error        3       main.foo(void* h)       
D:\Projetos-D\ConsoleApp1\main.d        21
        foo(h);

    return 0;
}

void foo(HGDIOBJ h)
{
}

void foo(HACCEL h)
{
}



I want my 2 overloaded 'foo' functions to be able to differentiate when the passed parameter is a HGDIOBJ or a HACCEL...but it doesn't compile (error in the code above)

The problem lies in how I am declaring those 2 types cause they are aliases for the same base type: 'void*'

dont't know how to solve it! thks for helping

Reply via email to