This is bizarre, because Plato links fine in testing mode, but not in my link steps.
I decided to isolate my modified STDCALL for FindWindowA in the following manner:
integer function find_window_new(abcd)
STDCALL FINDWINDOW_static 'FindWindowA' (STRING,REF):INTEGER(7)
character*(*):: abcd
find_window_new = FINDWINDOW_static(abcd,core4(0))
return
end
However, after I compile and link (this link step has not changed in over a year), I get:
WARNING the following symbols are missing: (F:\CMASTERF95\RELEASE\WIN32\CFUNC\FIND_WINDOW_NEW.OBJ) FindWindowA f:\CMASTERF95\RELEASE\WIN32\C-MASTER.lib (/9775 ) (F:\CMASTERF95\RELEASE\WIN32\CFUNC\FIND_WINDOW_NEW.OBJ)
As a test, I put in a USE MSWIN into the code AND the standard FINDWINDOW() function call; still get that FindWindowA is an unresolved symbol. I also placed a different API call in this routine, then BOTH symbols were not found.
My compile parameters are the same for all modules. For my little routine, they are listed below.
Silverfrost FTN95/Win32 Ver 8.70.0 FIND_WINDOW_NEW.FOR Sun Dec 13 07:20:04 2020
Compiler used [C:\Program Files (x86)\Silverfrost\FTN95\FTN95.exe] Salflibc path [C:\Program Files (x86)\Silverfrost\FTN95\salflibc.dll] Salflibc version [22.11.17.16] Compiler options in effect: BINARY;CFPP;DUMP;ERROR_NUMBERS;FPP;HARDFAIL;IGNORE;IMPLICIT_NONE; LIST;NO_COMMENT;PERSIST;SAVE;UNLIMITED_ERRORS;WIDE_SOURCE;XREF;ZEROISE;
My link steps are all similar. Here are the parameters for my link. My little routine is in $(LIBRARY_CMASTER)
Salflibc path [C:\Program Files (x86)\Silverfrost\FTN95\salflibc.dll] Salflibc version [22.11.17.16] Compiler options in effect: BINARY;CFPP;DUMP;ERROR_NUMBERS;FPP;HARDFAIL;IGNORE;IMPLICIT_NONE; LIST;NO_COMMENT;PERSIST;SAVE;UNLIMITED_ERRORS;WIDE_SOURCE;XREF;ZEROISE;
My link steps are all similar. Here are the parameters for my link. My little routine is in $(LIBRARY_CMASTER)
[quote:eb3c6ed07a]$(LINKER) \((DESTINATION)\\CMAIN.obj cmain_resources.\)(SRC_EXTENT) $(DESTINATION)\CFUNC\GUSER.obj $(LIBRARY_CMASTER) $(PROJ4LIB) \((PDFSUPPORT) /file:\)(C_MASTER) -MAP:$(DESTINATION)\C-Master.MAP
I have never had to include any other system libraries in the link steps, so am befuddled by the failure to find this symbol.
In PLATO, whether I include this small routine with its small MAIN or separate it into a different compilation, it compiles, links, and runs just fine.
I also tried adding a findwindow() call in my main in an effort to make sure the symbol was found and loaded. In the link step, it still calls out that FindWindowA is missing in my small routine, not my main.