0 votes
by Philip Butler (170 points)
I am trying to generate a Windows DLL, starting with the GenDllTest.fth example.

However, my distribution (version 5.43 build 4241) does not contain a pair of matched low-memory / high-memory compilers. VfxForthK_64_win.exe does not have init-libs, but both VfxForthB_x64_win.exe and VfxForth_x64_win.exe compile the file successfully, with the DllMain entry reported at different addresses. Unfortunately, that does not seem sufficient for MakeDll.

MakeDll %bin%\VfxForthB_x64_win %bin%\VfxForth_x64_win %mydir%\GenDllTest C:\temp\testdll
Saving C:\temp\testdll
Err# -256 ERR: Execution of a DEFERed word with no ASSIGNed action.
 -> MakeDll %bin%\VfxForth_x64_win %bin%\VfxForthB_x64_win %mydir%\GenDllTest C:\temp\testdll
                                                                                            ^
I then tried to make a VfxForthBH_x64_win.exe by using VfxBase64.bld. But (after selecting the latest ExternWin64.fth) I gave up after stumbling on the following error. Also I could not find how to load to make the result load to a higher memory area (just reserve unused space in the dictionary to get an offset?).

Err# -13 ERR: Undefined word.
 Source: "c:\Products\VfxCommunity\Sources\VFXBase\CallDefWin64.fth" on line 178
 ->     [a  movsx  a]  Poff bytePSP,  ^ai IntArgReg  [a]
                                                   ^

Please log in or register to answer this question.

...