beamui icon indicating copy to clipboard operation
beamui copied to clipboard

all examples crash on Win 10

Open aferust opened this issue 4 years ago • 9 comments

LDC 1.19.0 64 bit

How to reproduce: Download and unzip the repo run dub run :basic

gdb crash report:

gdb: unknown target exception 0xc000041d at 0x7ffa2ff3a799

Thread 1 received signal ?, Unknown signal.
0x00007ffa2ff3a799 in RaiseException ()
   from C:\WINDOWS\System32\KernelBase.dll

ui.log:

beamui log file
2020-07-24 11:30:58.970 I  Log level changed to trace
2020-07-24 11:30:58.970 I  Logger is initialized
2020-07-24 11:30:58.970 I  Creating Win32FontManager
2020-07-24 11:30:58.972 I  Found 342 font faces
2020-07-24 11:30:58.973 D  Initializing resource managers
2020-07-24 11:30:58.973 I  Creating ImageCache
2020-07-24 11:30:58.973 D  initResourceManagers() -- finished
2020-07-24 11:30:58.973 V  Registering window class
2020-07-24 11:30:58.976 D  Setting platform
2020-07-24 11:30:58.977 V  CSS: loading 'light.css'
2020-07-24 11:30:59.006 D  Destroying theme
2020-07-24 11:30:59.006 D  Screen dimensions: {(0, 0), [1920, 1080]}
2020-07-24 11:30:59.019 V  created window, adding to map
2020-07-24 11:30:59.019 I  GL: trying to create 3.2 context
2020-07-24 11:30:59.057 I  GL: created successfully
2020-07-24 11:30:59.058 V  GL: GLSL version is 150
2020-07-24 11:30:59.058 D  Window DPI changed from 96 to 120

aferust avatar Jul 24 '20 08:07 aferust

I haven't reproduced yet, but I've fixed something related. Try now.

dayllenger avatar Jul 25 '20 09:07 dayllenger

now this is what I get when I try to compile and run in a VC 2017 x64 cmd:

Linking...
libcmt.lib(exe_main.obj) : error LNK2019: unresolved external symbol main referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)
examples\canvas\.dub\build\application-debug-windows-x86_64-ldc_2091-705E402B21F4F3E5B284614C05A9094D\canvas.exe : fatal error LNK1120: 1 unresolved externals
Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe failed with status: 1120

And in a regular cmd window:

Linking...
lld-link: error: undefined symbol: main
>>> referenced by vcruntime140.lib(msvcrt_stub1.obj):($LN3)
Error: linking with LLD failed

aferust avatar Jul 25 '20 21:07 aferust

Try now again.

dayllenger avatar Jul 26 '20 05:07 dayllenger

Thank you, it is now working using a regular cmd, but not using VC 2007 x64 native cmd. If this is intended behavior, we can just ignore this by adding an explanation in the windows section of the readme.

Linking...
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol WinMain referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)
examples\basic\.dub\build\application-debug-windows-x86_64-ldc_2091-E14114AE6D43A7D9BCEF63664086EA98\basic.exe : fatal error LNK1120: 1 unresolved externals
Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe failed with status: 1120
C:\dlang\ldc2-1.21.0-windows-x64\bin\ldc2.exe failed with exit code 1.

by the way, it looks fancy comparing to dlangui. Very nice and promising ui library. Once I made a PR to dlangui for a new spinctrl widget. I see that the focus is not new widgets, so after a while I can make some PRs for beamui.

aferust avatar Jul 26 '20 09:07 aferust

It is most possibly a bug. I don't develop on Windows, so sometimes I miss such issues.

My intention is to create a conservative list of standard controls plus a bunch of abstract building blocks for making arbitrary components. Spinbox is in my TODO list too. I need to sort out a couple of issues with event propagation and focus switching beforehand.

dayllenger avatar Jul 26 '20 18:07 dayllenger

I see. I just figured out that you designed something similar to React's state concept. Is there any reason to do that?

aferust avatar Jul 26 '20 21:07 aferust

Well, React-like flow is ten times more intuitive to work with than usual retained widgets. It separates data from widgets naturally, it allows you to arbitrarily build and modify widget tree with little mental effort and with good performance. You just write what first pops up in your head and it works. With retained widgets, state management technics like bindings, MVVM, or Rx are bulky or too magical comparing to this.

Also, React is famous, lots of people are already familiar with this mindset. One can port items from existing reactive frameworks if needed.

dayllenger avatar Jul 26 '20 22:07 dayllenger

Thank you for clarification.

aferust avatar Jul 27 '20 07:07 aferust

I completely agree with @dayllenger, can't wait to see him sort through the stuff he's working on. Not skilled enough to help at this stage, but anything I can do to help?

aberba avatar Sep 30 '20 21:09 aberba