I’m getting an assert while running the demo
drag and drop demo, just dragging an element somewhere
the assert is
// if the component's not opaque, this won't draw properly unless the platform can support this
jassert (Desktop::canUseSemiTransparentWindows() || component->isOpaque());
in juce_win32_Windowing.cpp line 1363
lastest git commit
without the assert I get access violation at line 275,
updateLayeredWindow is NULL because getprocaddress is never executed
I’ve tried a breakpoint in Desktop::canUseSemiTransparentWindows but I never reach it for some reason
I’m using vs2010 on winxp 64bit and I should have UpdateLayeredWindow in user32
…maybe I’m being naive, but does that exist??
…maybe I’m being naive, but does that exist??[/quote]
It does. Still in use by some composers with large sample libraries that haven’t gone over to Win7 yet (just for example).
Ok… so can you see where it’s failing? Is it the GetModuleHandle or GetProcAddress that fails? In your installation perhaps the module is called “user64.dll” or something?
still user32 but I’m compiling for 32bit, winxp 64 shares codebase with windows 2003
so think 32bit mode of windows xp 64 as like of windows 2003 32bit
I put a breakpoint in Desktop::canUseSemiTransparentWindows but it’s never reached
The assertion can’t fail unless that function has returned false, so it must be getting called.
I’ve finally found the problem:
I had HKCU\Software\Wine because I ran reactos task manager, I never hit
HMODULE user32Mod = GetModuleHandle (_T("user32.dll"));
updateLayeredWindow = (UpdateLayeredWinFunc) GetProcAddress (user32Mod, "UpdateLayeredWindow");
I hope there is better way to detect wine
I think something like
HMODULE ntdllMod = GetModuleHandle (_T("ntdll.dll"));
if (ntdllMod && GetProcAddress (ntdllMod, "wine_get_version"))
Ah! I see… Thanks for chasing that up, and excellent suggestion, thank-you!