So I think the best approach is to remove mscvrt.lib/oldnames.lib from the import project. We have several functions in Islandrtl that conflict with those.
If we pass:
/nodefaultlib:oldnames.lib /nodefaultlib:msvcrt.lib
In Linker (LLD) Options.
It properly fails on missing symbols. Then the tricky part:
Implementing the missing functions.
I have a set of them already, and some tweaks in your import project to force importing symbols from kernel32/user32.
rayrayl.zip (6.2 MB)
To get started.
What I did:
<ImportDefs>IsProcessorFeaturePresent;DragQueryFileW;DragQueryPoint;DragFinish;DragAcceptFiles;SystemParametersInfoW;MonitorFromWindow;GetMonitorInfoW;EnumDisplayMonitors;GetRawInputData;GetRawInputDeviceInfoA;RegisterRawInputDevices;GetRawInputDeviceList;ClientToScreen;GetWindowLongW;SetWindowLongW;GetClassLongW;LoadCursorW;DestroyIcon;LoadImageW;CreateIconIndirect;ChangeDisplaySettingsExW;EnumDisplaySettingsW;EnumDisplaySettingsExW;EnumDisplayDevicesW;ScreenToClient;WindowFromPoint;ClipCursor;SetRect;PtInRect;GetDC;ReleaseDC;SetForegroundWindow;RedrawWindow;GetPropW;SetPropW;RemovePropW;SetWindowTextW;GetClientRect;GetWindowRect;AdjustWindowRectEx;SetCursorPos;SetCursor;GetCursorPos;ClientToWindow;IsWindowVisible;IsIconic;BringWindowToTop;IsZoomed;OpenClipboard;CloseClipboard;SetClipboardData;GetClipboardData;EmptyClipboard;SetFocus;GetActiveWindow;GetKeyState;ToUnicode;MapVirtualKey;SetCapture;ReleaseCapture;MsgWaitForMultipleObjects;GetSystemMetrics;GetWindowPlacement;SetWindowPlacement;TlsFree;DispatchMessage;PeekMessageW;GetMessageTime;SendMessageW;RegisterDeviceNotificationW;UnregisterDeviceNotification;PostMessageW;WaitMessage;DefWindowProcW;UnregisterClassW;RegisterClassExW;CreateWindowExW;DestroyWindow;ShowWindow;GetLayeredWindowAttributes;SetLayeredWindowAttributes;FlashWindow;MoveWindow;SetWindowPos;VerSetConditionMask;FormatMessageW;ChoosePixelFormat;CreateBitmap;CreateDCW;CreateRectRgn;DeleteDC;DeleteObject;DescribePixelFormat;GetDeviceCaps;SetPixelFormat;QueryPerformanceCounter;QueryPerformanceFrequency;timeBeginPeriod;timeEndPeriod;TlsAlloc;TlsGetValue;TlsSetValue;LoadLibraryA;GlobalUnlock;GlobalLock;SetThreadExecutionState;CreateDIBSection;GetDeviceGammaRamp;SetDeviceGammaRamp;SwapBuffers;TrackMouseEvent;TranslateMessage;GetClassLongPtrW;fgetc;ungetc;</ImportDefs>
This copies the import sigs from kernel32 (rtl.fx) and friends that are used by RayLib.
The second bit is a set of implementations for the missing C functions. There are a few more though, and probably some debugging to do.
Do you think you can get somewhere with this though?