Sign in to follow this  
Guest grb

Can someone help me with a Borland compilation problem for Gauges?

Recommended Posts

Hi all,OK, I have the Borland C compiler 5.5v downloaded and working OK. I have downloaded Arne's packages that he and Dragonfly had assembled some time ago. I have looked at various makefiles they and Jean Luc have put together and shared on this forum in the past. No matter what I have tried over a period of a few months....I cannot get a single gauge to compile from the examples that Arne B had shared with us. I have no problem creating simply c code and compiling it, linking it etc.. So my paths and lib/dirs etc. are set up correctly.Also I am carefull as to where I have placed and reference the gauge dirs files and the h files etc.. Again I do not get compilation errors regarding things not being able to be found/linked etc.. So I believe all libs that are required are in place. The problem I am having at this point is where I have a make file that first creates the obj files, then using the borland resource compiler ...create the required SDK.res file. The problem seems to be where in the last stage where I link the obj and res files...... I get the following error message...........WHERE I type the following in DOS window:make -f grb-ma~1 (which is the name of the make file.-------------------------------------------------------------RESULT IS AS FOLLOWS:-------------------------------------------------------------MAKE Version 5.2 Copyright © 1987, 2000 Borland e:BorlandBCC55binbcc32.exe -c -IE:BorlandBCC55gauges E:BorlandBCC55gaugesSDK-1.cBorland C++ 5.5.1 for Win32 Copyright © 1993, 2000 BorlandE:BorlandBCC55gaugesSDK-1.c:Warning W8075 E:BorlandBCC55gaugesSDK.Temperature.c 10: Suspicious pointer conversionWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'hDLL' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'dwReason' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'lpReserved' is never used in function DllMain e:BorlandBCC55binbrcc32.exe -w32 -r -V E:BorlandBCC55gaugesSDK.rcBorland Resource Compiler Version 5.40Copyright © 1990, 1999 Inprise Corporation. All rights reserved. e:BorlandBCC55binilink32.exe /Tpd /c /C /Gn /x /q /Gpr SDK-1.obj E:BorlandBCC55gaugesSDK.res user32.lib gdi32.lib kernel32.lib;Error: 'E:BORLANDBCC55GAUGESSDK.RES' contains invalid OMF record, type 0x00** error 2 ** deleting SDK.gau___________________________________________________Notice that other then a few warnings during the object compile stage I do not get any errors until the last stage.........where one tries to link the pre-compiled files, objs and res file. See where it says........."contains invalid OMF record"If I take the resource compile stage out of the make file and compile the resource file from the SDK.rc file etc... as a standalone in DOSwindow I get no errors.Then if I take that resource stage out of the make file and just try to compile that last stage......linking objs and res file etc.. I still get the same error message.********************************************So .............I was wondering if I could email someone each file as well as the make file so someone could help me find out what I am doing wrong. Or is it something wrong with the original SDK.rc, SDK.c, gauge bmps files or the C code for any of the original gauges?I tried to use care as I created the SDK.rc gauge to just represent one of the example gauges. And I have touched the header files norin any way tinkered or changed anything in any lib file etc..The files are not long........so I would not be sending a ton of stuff to someone to look over. Off course I would also send a copy of the above output errors from the make process.Thanks in advance for anyones help. I am really getting discouraged at this point to say the least.regards,George

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

Hi George,just post your makefile in this forum, we will have a look. Also, if you name your makefile file "makefile", you just have to type "make" from a command prompt.Also, you shouldn't get these:====================================================================Warning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'hDLL' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'dwReason' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'lpReserved' is never used in function DllMain====================================================================I suspect something wrong in the SDK you are using.

Share this post


Link to post
Share on other sites

Thank you JeanLuc for your kindness. OK. Firstly, I am not trying to compile all the SDK gauges at one time. What I did was extract only the code for lets say the SDK temperature gauge into the X.rc file,making sure it looks exactly like the original, simply copied and pasted where appropritate, making sure I supply FULL LENGTH paths for include files etc.. That is why I had asked if some one would be willing to look at the four files. ....You will notice I have copied most of the Make File code that you shared some time back on this forum. I try to use brcc32 in a single pass, as well as in this makefile version, try to precompile in second stage, then use the tmp.rc file to then compile/link the resource code, as is in your example make file..... IN EITHER CASE I GET THE SAME WARNING/ERROR MESSAGES DURING THE FIRST STAGE (OBJECT COMPILE STAGE AND THE SECOND STAGE WHERE THE RESOURCE COMPILATION IS DONE). The reason I am only trying to compile one gauge is that no matter what I have tried in the way makefiles where put together, using the originals from Arne/Dragonfly, etc...etc.. I never could get the whole SDK package to compile without fatal errors etc. I also tried using the various guage.h files, library sets etc, based on each downloaded set of things (original SDK stuff, Arne's stuff etc..).So I figured that I would try simple and just try to compile ONE gauge! Here goes..........# makepink grb. 01/16/04 Try to compile a single gauge.......# Copyright © 2000 Microsoft Corporation. All rights reserved.GAUGE_NAME=TemperatureCPP=e:BorlandBCC55bincpp32.exeCC=e:BorlandBCC55binbcc32.exeRC=e:BorlandBCC55binbrcc32.exeLD=e:BorlandBCC55binilink32.exeINCDIR=E:BorlandBCC55gaugesDESTDIR=..workINCS=-I$(INCDIR)LIBS=user32.lib gdi32.lib kernel32.lib#the following lines taken from E:downloads-for-cfs2cfs2-sdksd2gua makefile.deffile=gauges_bcc.def# RTL, startup module and module definition file for the linkerrtl=import32.lib cw32mt.lib uuid.libinit_module=c0d32x.objL_FLAGS=/Tpd /c /C /Gn /x /q /Gprgoal: SDK.gauSDK.obj: $(INCDIR)FS2K2Gauges.h $(INCDIR)SDK-1.c $(INCDIR)SDK.Temperature.c $(CC) $(C_FLAGS) -c $(INCS) $(INCDIR)SDK-1.cSDK.res: $(INCDIR)SDK.rc $(INCDIR)SDK.h $(INCDIR)resSDK.Temperature.bg.bmp $(INCDIR)resSDK.Temperature.F.bmp $(INCDIR)resSDK.Temperature.C.bmp #$(BRCC) -r -V -w32 $(INCDIR)SDK.rc $(CPP) $(INCS) -q -otmp.rc $(INCDIR)SDK.rc $(RC) $(INCS) -r -V -w32 -fo $(INCDIR)SDK.res tmp.rc #del tmp.rcSDK.gau: SDK.obj SDK.res $(LD) $(L_FLAGS) SDK-1.obj $(INCDIR)SDK.res $(LIBS)clean: del $(DESTDIR)*.exp del $(DESTDIR)*.gau del $(DESTDIR)*.lib del *.obj del *.res_________________________END OF MAKEFILE____________________what I type in the dos screen is: makefile -f makepinkBelow are the contents for SDK.rc, SDK-1.c, SDK.Temperature.c.........**************HERE SDK.rc ***************************// SDK.rc// Copyright © 2000 Microsoft Corp. All Rights Reserved#include "E:BorlandBCC55gaugessdk.h"///////////////////////////////////////////////////////////////////////////////// Version//VS_VERSION_INFO VERSIONINFO FILEVERSION VERSION_MAJOR,VERSION_MINOR,0,VERSION_BUILD PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,0,VERSION_BUILD FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS 0x10004L FILETYPE 0x1L FILESUBTYPE 0x0LBEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "grb0" VALUE "FileDescription", "FS Gauge0" VALUE "FileVersion", "VER10" VALUE "LegalCopyright", "Your Copyright.0" VALUE "ProductName", "TempGauge0" VALUE "ProductVersion", "VER10" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 ENDEND///////////////////////////////////////////////////////////////////////////////// Temperature Gauge Bitmaps//BMP_TEMPERATURE_SMALL_BACKGROUND BITMAP DISCARDABLE "e:borlandBCC55gaugesresSDK.Temperature.bg.bmp"BMP_TEMPERATURE_SMALL_F BITMAP DISCARDABLE "e:borlandBCC55gaugesresSDK.Temperature.F.bmp"BMP_TEMPERATURE_SMALL_C BITMAP DISCARDABLE "e:borlandBCC55gaugesresSDK.Temperature.C.bmp"**************HERE IS SDK-1.C ***************************// SDK-1.c modified from original SDK.c to only have the temperature gauge.// Copyright © 2000 Microsoft Corp. All Rights Reserved#include "E:BorlandBCC55gaugesFS2K2Gauges.h"#include "E:BorlandBCC55gaugesSDK.h"/////////////////////////////////////////////////////////////////////////////// Temperature/////////////////////////////////////////////////////////////////////////////#define GAUGE_NAME "Temperature"#define GAUGEHDR_VAR_NAME gaugehdr_temperature#define GAUGE_W 100#include "SDK.Temperature.c"/////////////////////////////////////////////////////////////////////////////// Gauge table entries/////////////////////////////////////////////////////////////////////////////GAUGE_TABLE_BEGIN() GAUGE_TABLE_ENTRY(&gaugehdr_temperature)GAUGE_TABLE_END()********** HERE IS SDK.Temperature.c **** Made no changes in file// SDK.Temperature.c// Copyright © 2000 Microsoft Corporation. All rights reserved.// Set up gauge headerchar temperature_gauge_name[] = GAUGE_NAME;extern PELEMENT_HEADER temperature_list;extern MOUSERECT temperature_mouse_rect[];GAUGE_HEADER_FS700(GAUGE_W, temperature_gauge_name, &temperature_list, temperature_mouse_rect, 0, 0, 0, 0);#define GAUGE_CHARSET DEFAULT_CHARSET#define GAUGE_FONT_DEFAULT "Courier New"#define GAUGE_WEIGHT_DEFAULT FW_NORMAL/////////////////////////////////////////////////////////////////////////////FAILURE_RECORD temperature_fail[] ={ {FAIL_SYSTEM_ELECTRICAL_PANELS, FAIL_ACTION_NO_DRAW}, {FAIL_NONE, FAIL_ACTION_NONE}};/////////////////////////////////////////////////////////////////////////////FLOAT64 FSAPI temperature_string_cb( PELEMENT_STRING pelement ){ FLOAT64 val = pelement->source_var[0].var_value.n; val *= 256; if( pelement->source_var[1].var_value.n == ENGLISH_UNITS ) val = val*9/5 +32; // limit var if ( val > 999 ) val = 999.0; else if( val < -99 ) val = -99; wsprintf(pelement->string, "%3d", (UINT32)val); return val;}MAKE_STRING( temperature_string, NULL, temperature_fail, IMAGE_USE_ERASE | IMAGE_USE_BRIGHT | IMAGE_USE_TRANSPARENCY, 0, 28, 9, 60, 29, 3, TOTAL_AIR_TEMP, DISPLAY_UNITS, MODULE_VAR_NONE, RGB(255,0,0), RGB(0,0,0), RGB(92,92,92), GAUGE_FONT_DEFAULT, GAUGE_WEIGHT_DEFAULT, GAUGE_CHARSET, 0, DT_CENTER | DT_VCENTER | DT_SINGLELINE, NULL, temperature_string_cb)FLOAT64 FSAPI temperature_cf_cb( PELEMENT_ICON pelement ){ if( pelement->source_var.var_value.n == ENGLISH_UNITS ) return 0; else return 1;}MAKE_ICON( temperature_cf, BMP_TEMPERATURE_SMALL_F, NULL, temperature_fail, 0, 0, 99, 9, DISPLAY_UNITS, temperature_cf_cb, ICON_SWITCH_TYPE_SET_CUR_ICON, 2, 0, 0)PELEMENT_HEADER temperature_icon_list[] ={ &temperature_string.header, &temperature_cf.header, NULL};/////////////////////////////////////////////////////////////////////////////MAKE_STATIC( temperature_background, BMP_TEMPERATURE_SMALL_BACKGROUND, &temperature_icon_list, NULL, IMAGE_USE_TRANSPARENCY, 0, 0,0)PELEMENT_HEADER temperature_list = &temperature_background.header;MOUSE_BEGIN( temperature_mouse_rect, HELPID_CONCORDE_TEMPERATURE_TOTAL, 0, 0 )MOUSE_END/////////////////////////////////////////////////////////////////////////////#undef GAUGE_NAME#undef GAUGEHDR_VAR_NAME#undef GAUGE_W*********** FINALLY IN CASE YOU WANT TO COPY ALL THIS STUFF TOYOUR MACHINE SO THAT YOU CAN HAVE A BETTER LOOK COMPARING THE MAKEFILE ERROR CODE TO WHAT THE FILES CONTAIN I WILL SHOW AGAIN THE OUTPUT OF THE MAKEFILE ...........MAKE Version 5.2 Copyright © 1987, 2000 Borland e:BorlandBCC55binbcc32.exe -c -IE:BorlandBCC55gauges E:BorlandBCC55gaugesSDK-1.cBorland C++ 5.5.1 for Win32 Copyright © 1993, 2000 BorlandE:BorlandBCC55gaugesSDK-1.c:Warning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'hDLL' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'dwReason' is never used in function DllMainWarning W8057 E:BorlandBCC55gaugesSDK-1.c 17: Parameter 'lpReserved' is never used in function DllMain e:BorlandBCC55bincpp32.exe -IE:BorlandBCC55gauges -q -otmp.rc E:BorlandBCC55gaugesSDK.rcE:BorlandBCC55gaugesSDK.rc: e:BorlandBCC55binbrcc32.exe -IE:BorlandBCC55gauges -r -V -w32 -fo E:BorlandBCC55gaugesSDK.res tmp.rcBorland Resource Compiler Version 5.40Copyright © 1990, 1999 Inprise Corporation. All rights reserved. e:BorlandBCC55binilink32.exe /Tpd /c /C /Gn /x /q /Gpr SDK-1.obj E:BorlandBCC55gaugesSDK.res user32.lib gdi32.lib kernel32.libError: 'E:BORLANDBCC55GAUGESSDK.RES' contains invalid OMF record, type 0x00** error 2 ** deleting SDK.gauWELL I THINK I HAVE INCLUDED ADEQUATE FILES ....I HAVE NOT CHANGED ANYTHING IN ANY LIBRARY FILE ETC.. THANK YOU ...........JeanLuc.

Share this post


Link to post
Share on other sites

Not sure, but I think single "" don't work in .rc files. C is somewhat related to Unix and uses "/" for directories, and the "" is preset with the special function to introduce special characters. For .rc files always make sure that you use doubled backslashes "" instead of "" for paths.If you have strings with path delimiters in C files you also have to use instead of , but not foe #include'd file paths.Arne Bartels

Share this post


Link to post
Share on other sites

Ok!Let's start over :-)here is an archive with everything setup properly for the SDK example to compile with BCC:1) unzip the SDK example to a folder2) unzip the content of my archive over. It will replace the gauges.h with a "modified" one, will replace the gauges code with a new FS800 header type definition (which is defined in the modified gauges.h), and it includes the makefile and the necessary .def files.open a command prompt in the folder of the SDK gauge example, then simply type "make". Everything should compile with a couple warnings that's all. These warnings are from the SDK code so you have a skeleton / minimum configuration setup for any gauge with my archive.Don't forget to also:=========================================================2. From the bin directory of your installation: a. Add "c:BorlandBcc55" to the existing path b. Create a bcc32.cfg file which will set the compiler options for the Include and Lib paths (-I and -L switches to compiler) by adding these lines: -I"c:BorlandBcc55include" -L"c:BorlandBcc55lib" c. Create an ilink32.cfg file which will set the linker option for the Lib path by adding this line: -L"c:BorlandBcc55lib"=========================================================on my setup, the files include:A) for bcc32.cfg located in the bin subfolder:-I"c:bcc55include"-L:"c:bcc55lib";"c:Bcc55libpsdk":( and for the ilink32.cfg:-L"c:bcc55lib";"c:Bcc55libpsdk"These are the path for my setup.Don't forget the a. Add "c:BorlandBcc55" to the existing path. That is to your PATH environment variable.Mine reads:"C:BCC55BIN"Hope this helps!http://forums.avsim.net/user_files/58154.zip

Share this post


Link to post
Share on other sites

Thanks for suggestion Arne.I am aware of the significance of "" when working in the Unix world.But, when I look at all the rc files etc., in the original MS SDK and things I have downloaded from you etc.., I do not see double backslahes nor forward slashes used in the rc files etc.. For instance one will see lets say:BMP_TEMPERATURE_SMALL_C BITMAP DISCARDABLE "e:borlandBCC55gaugesresSDK.Temperature.C.bmp"NOW notice........the original did not even have the one set of "" you see hear. I got this idea to include only the single set based on somewhere in your or Dragonflies FS2K2SDK documentation.But I will try to change every occurance of single backslahes to forward slashes, then if that does not work try double backslashes in the full path line (......... etc..).As a side note, I one carefully examines how I modified the three files, I took into account exact replicate code requried for a given gauge. I would never had tried to compile a single file had I been able to compile the SDK original sets of stuff and or your various versions that I obtain via. this forum some time back.It just seemed like by trying a single gauge I could narrow down where I am going wrong in contructing my make files.At any rate, thanks for the tip. best regards,George

Share this post


Link to post
Share on other sites

OK Firstly thank you both for the help. I really appreciate it!REALLY!Arne, feedback per your suggestion regarding backslash, double backslash, one forward slash. I changed all occurances in the rc file to reflect either a "/" or a "". Here is the line I get back after running the make file:Error tmp.rc 130 67: Cannot open file: e:borlandBCC55gaugesresSDK.Temperature.bg.bmpThe version where I use all single slashed in the paths arguements in the rc file give me the same message as when I use all "".So this was not the problem.......At this point I will follow JeanLuc's suggestions carefully and see what happens. Right off the bat I can see I do not have the line shown in his linker config file that references "libpsdk". Funny I had earlier questioned if the linker would autmatically search subdir trees for additional libraries. JeanLuc, I understand what you wrote. I will download your stuff from the suppllied URL. Thanks again, both for your kindness.I will surely let you all know the results.best regards,George

Share this post


Link to post
Share on other sites

JeanLuc,I followed each step. I already had the PATH set. So at this pointhere is what I have in my two config files:bcc32.conf:-I"E:BorlandBcc55include"-L"E:BorlandBcc55lib";"E:BorlandBcc55libpsdk"ilink32.conf:-L"E:BorlandBcc55lib";"E:BorlandBcc55libpsdk"Next Step:created a directory called jeanluc under e:BorlandBcc55Next Step:copied all the FS2K2 SDK example files and the res directory tojeanluc dir. NOTICED YOU DID NOT INCLUDE THE RES DIR/FILES.....Next Step:Unzipped your 58154.zip file to this dir. Obviously saying yes to all the files it wanted to over right.Next Step:modified following lines in your makefile:_________________________________________CC=e:borlandbcc55binbcc32.exeCPP=e:borlandbcc55bincpp32.exeLD=e:borlandbcc55binilink32RC=e:borlandbcc55binbrcc32.exe...move SDK.gau e:BorlandBCC55workSDK.gau-----------------------------------------I MADE NO OTHER CHANGE TO THE MAKEFILE.Next Step: run make while in the jeanluc directory this wayso there are no gotchas etc.....binmake -f .makefile > errorYes I know that if a file is called makefile that make will detect it,but as you can see, I wanted to put the results into a error file so that I can paste the results into this thread. If I simply run makeI get the same output as seen in the error file you see here.HERE IS THE RESULT:**********************************************************MAKE Version 5.2 Copyright © 1987, 2000 Borland e:borlandbcc55binbcc32.exe -O2 -w-par -q -6 -Oc -OS -Ov -tWD -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -Oi -RT- -v- -x- -xf -P- -Tkh32768 -c SDK.cSDK.C:Warning W8069 SDK.FlightMap.c 98: Nonportable pointer conversion in function FlightMapCallbackError E2340 SDK.FlightMap.c 108: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 109: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 110: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 143: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 144: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 145: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackWarning W8012 SDK.FlightMap.c 152: Comparing signed and unsigned values in function FlightMapCallbackWarning W8012 SDK.FlightMap.c 159: Comparing signed and unsigned values in function FlightMapCallbackError E2340 SDK.FlightMap.c 160: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 162: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 163: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 165: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 169: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackError E2340 SDK.FlightMap.c 170: Type mismatch in parameter 1 (wanted 'HDC__ *', got 'unsigned long') in function FlightMapCallbackWarning W8008 SDK.FlightMap.c 305: Condition is always true in function GPSARG_Get_WP_IDWarning W8019 SDK.FlightMap.c 358: Code has no effect in function AddNewWaypoint*** 12 errors in Compile ***** error 1 ** deleting SDK.obj*****************************************************************So as you can see, there was a problem with FlightMap.c file, thenafter so many errors.....process terminated.Q1: Any hints as to what may be happening at this point?I could not help notice that you do not assign and make variable that expands to represent path to take for the includes and libraries.Q2: Am I to assume that the Borland compiler(s) look into the bcc32 and ilink32 config files and know where to find the libraries and h files etc., without having to include them in the make file compiler lines?In regards to question 2. I always assigne a variable to provide the full path to where include dir etc. is, then place that variable intothe compiler command line sequence, which is typical way to do it.ButI do not see you doing it in your makefile.At any rate, this is the result. As you can see I followed each one of the steps you told me to do. One other thing.Q3: Where you refering to the SDK example dirs/files that we download for FS2K2?Or does the term you used "1. unzip the SDK eample to a folder."refer to some other SDK package? Why I ask this is I did a one for one comparisison between my SDK example dir and (it also has the original res dir under it of course), and the files found in yourZIP file after unpacking them. There was a one for one match. Which is what I would expect.Thanks for your patience,George

Share this post


Link to post
Share on other sites

DO NOT, I repeat DO NOT modify the makefile file like you did:=============CC=e:borlandbcc55binbcc32.exeCPP=e:borlandbcc55bincpp32.exeLD=e:borlandbcc55binilink32RC=e:borlandbcc55binbrcc32.exe=============this is useless and this is the purpose of the PATH enviro var, as well as the 2 .cfg files for the BCC compiler.this of course is alright: move SDK.gau e:BorlandBCC55workSDK.gau(I usualy move to the FS gauge folder....)Now about the errors:at line 4761 of the gauges.h I've provided, there is:#define COLORREF unsigned long#define HDC unsigned long#define HFONT unsigned long#define HBITMAP unsigned long#define HBRUSH unsigned longcomment these out and try again!

Share this post


Link to post
Share on other sites

OK JeanLuc,I commented out the five lines. And tried again. Bingo! I got no errors only a few warnings......and a SDK.gauge was created. So it looks like those five lines where the problem.I have been working at this stuff for at least 12 hours today and am getting a bit weary. So I am going to hit the sack. Tommorow I will try out your SDK gauges. Thank you for your patience and help. I will let you know how I make out.best regards,George

Share this post


Link to post
Share on other sites

Ah so it's the gauges.h from 2000 SDK! The original gauges.h from FS2002 SDK doesn't contain these lines any more, and of course the fs2k2gauges.h in Dai's tutorial also.Arne Bartels

Share this post


Link to post
Share on other sites

In fact, these are personal modifications which goes with some others in the default BCC includes.... :-)

Share this post


Link to post
Share on other sites

Arne,You wrote:"Ah so it's the gauges.h from 2000 SDK! The original gauges.h from FS2002 SDK doesn't contain these lines any more, and of course the fs2k2gauges.h in Dai's tutorial also."Question.So what is the ramifications based on your observations per above, as to the reliability of the 2000/CFS2 SDK header files? Does this mean that one will not be able to use the 2000 SDK stuff to create gauges for CFS2 level? Sorry if the question begs a long drawn out explaination. Don't feel obligated to answer if it requires to much time on your part to set us straight.JeanLuc,Your gauges work just fine in a plane panel I added them to for FS2K2.Thanks again for your patience and advice, and the set of header files and otherwise that you had to put time into to make the stuff work!Just for the heck of it.......I will show the results below. **********************************************************MAKE Version 5.2 Copyright © 1987, 2000 Borland bcc32.exe -O2 -w-par -q -6 -Oc -OS -Ov -tWD -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -Oi -RT- -v- -x- -xf -P- -Tkh32768 -c SDK.cSDK.C:Warning W8012 SDK.FlightMap.c 152: Comparing signed and unsigned values in function FlightMapCallbackWarning W8012 SDK.FlightMap.c 159: Comparing signed and unsigned values in function FlightMapCallbackWarning W8019 SDK.FlightMap.c 264: Code has no effect in function ScalePointWarning W8019 SDK.FlightMap.c 264: Code has no effect in function ScalePointWarning W8008 SDK.FlightMap.c 305: Condition is always true in function GPSARG_Get_WP_IDWarning W8019 SDK.FlightMap.c 358: Code has no effect in function AddNewWaypointWarning W8019 SDK.FlightMap.c 361: Code has no effect in function AddNewWaypointWarning W8019 SDK.FlightMap.c 361: Code has no effect in function AddNewWaypoint cpp32.exe -q -otmp.rc SDK.rcSDK.RC: brcc32.exe -fo SDK.res tmp.rcBorland Resource Compiler Version 5.40Copyright © 1990, 1999 Inprise Corporation. All rights reserved. del tmp.rc ilink32 /Tpd /c /C /Gn /x /q /Gpr c0d32x.obj SDK.obj , SDK.gau,, IMPORT32.LIB cw32mt.lib uuid.lib dsound.lib dxextra.lib ,gauges_bcc.def,SDK.res SDK.res ****************************************************************One Question for you JeanLuc if I may:Should I only see a little white (arrow or plane shape) in the center of a medium greyish colored screen? That is all that shows up for the FlightMap gauge. Any explainations as to what that gauge is for would be appreciated. Thank you both for your help and look forward to communicating to you in the future. My plan is to somehow create a active Radar Gauge for the CFS2 community. very best regards,George

Share this post


Link to post
Share on other sites

The gauges made with Panel and Gauges SDK can usually be used with the following sim, but not the other way round. CFS2 came after FS2000 and before FS2002, so you are on the safe side if you use FS2000 gauges.h for CFS2 gauges. The normal changes from version and version are usually some added variables,keys,helpids etc.. You might find them by comparing FS2000 FS2002 gauges.h and note the differences in the KEY_..,HELP_ID_.. sequence and the token list. All CFS2 variables are included in the FS2002 list (as all CFS1 variables were in the FS2000 list), but you can't use all variables from FS2002 in CFS2.BTW with the Flightmap gauge, load a flightplan in your area and look if you see the waypoints, but also drop the gps_export.dll in the module folder of Fs2002, DON'T do this in any other Fs sim, this would presumably crash your system. The gps_export.dll hooks in the internal FS data and exports the gps part, it is very version specific.Arne Bartels

Share this post


Link to post
Share on other sites

Arne,Thanks for the above explaination regarding SDK suitability for a given simulator. And the explaination as what the FlightMap gauge does. I will try out what you say to do, to see if waypoints etc., show up in that gauge after loading a flightplan.best regards,George

Share this post


Link to post
Share on other sites

Arne,I copied the gps_export.dll program from the FS2K2 Panel_Aircraft SKD sample dir to my FS2K2modules directory. Then I loaded a plane with the FlightMap gauge in it's panel into sim. Created a flight plan.Loaded FlightPlan. Bingo! I see a white vector line (waypoint) shown in the gauge screen, animating from the center (with a little dot enclosing the little cursor shape). The white line starts in center and goes off screen in the directlion that the end airport would be located. So that part works. Now I noticed that if I LEFT CLICK THE MOUSE WHILE IN THE GAUGE ....another waypoint is created with a little dot at it's end. And if I click once again, another waypoint vector gets added to the screen.So after two clicks.........I have three white lines connected by little hollow white dot shapes.Not sure what this means................just reporting how the gauge is functioning.Is this about what I should expect? Not to want to complicate things, but as you would see in this thread where I showed a succesful compile...........you will notice that there where some warning messages concerning the FlightMap.C file.Perhaps there are some small errors in how the C code is being used for that gauge withing the FlightMap.c file. At any rate, looks as if the gauge is somewhat functional. Noticed it has no power on/off or other type buttons showing up within it's framework. I assume at the moment that it is strictly a black background box, with the inner white lined box shown inside and that all one sees is a waypoint. Perhaps this gauge was designed as a skeleton type function so that one could build more functionality into it? Have not even looked at the bmp files yet on this issue.take care,George

Share this post


Link to post
Share on other sites

You don't need to look after the bitmaps, there aren't much. The flightmap gauge is a very basic example to draw anything "on the fly" with the GDI mechanism. And secondly it shows a way to display full GPS data and as you found out even modifying it, which isn't possibble with the "standard" gauge programming (menaing with the data provided by gauges.h only).Speaking of the warnings, the original flightmap.c is (how should I put it, sloppy pogramming?) compilable in VC++ without modifications. E.g. for GCC you need the reworked version from sd2gau15.zip to get it to work at all. In BCC you are lucky only to get warnings. On the other hand warnings about inefficient code ("Condition is always true","Code has no effect") are almost offending in my opinion, maybe it's true, but often programming like this might be intentionally. I ignore those kinds of warnings. "Comparing signed and unsigned " warnings are probably something different and might demand a closer look, you can even get rid of them with some typecasts, but for this specific gauge it's save and easier to ignore all three types of warnings.Arne Bartels

Share this post


Link to post
Share on other sites

Yes, the archive I've setup includes the modification for the gauge to be compiled with BCC. No need specificaly for the SD2GAU15.zip (although it is a very good effort from its authors for a global understanding of gauge programming and I recommend it. Byt the way, when will Dai decide to ALSO upload this guide at avsim... more people would be able to enjoy it I guess because there, it is often hard to get a node...)Anyhow, the only thing which needed to be changed was the assignement to the POINT structure. You'll find the original line commented out in my archive (re: flightmap.c)Unsigned / signed is probably in the for...loop. Testing the index (signed) to a maximum value (unsigned). Just cast it out or declare the index loop counter as an unsigned.Code has no effect is only related to some of the SIF48_ ...to something.... and the other similar functions. BCC guesses that some of the computations needed to convert a type like this (64bits) to another one (double) are not necessary. This is not true in fact from a machine code compiled code point of view, when looking at how BCC (as compared to VC) compiles these function. Just ignore these warnings, you have to leave with them with BCC!Arnes, I share you view about the "sloppy" but these are just SDK samples to get you started! and don't forget, VC++ is not 100% compliant to ANSI while BCC is... This sometimes creates bad coding habits....Hope this helps!a

Share this post


Link to post
Share on other sites

Arne and JeanLuc,I think I got a better idea as to what the gauge is intended to do.As JeanLuc indicated, it is in the SDK as an example. So between what both you guys had to say, it appears to be an experimental gauge to allow people to explore how they can make a more advance interactive gauge based on that code. Interestingly, since my plans are to try to create CFS2 stuff. I downloaded and installed all the stuff "sd2gau15.zip" and the Arne/Dragonfly stuff from an earlier time (last year?). And with a bit of hacking.......created a SDK.H, SDK.C, SDK.rc file to go along with the FlightMap.c file and it's associated bitmap files.Using a modified Makefile and the FS2K2Gauges.H file from that distribution..............I got the gauge to compile .....As Arne indicated above. Looks to me like it is the same thing as the onefound in JeanLuc's distribution for all practical purposes. At any rate, thanks once more both, for responding with INTELLEGENT ANSWERS. Rather refreshing to say the least! Perhaps the day will come when I am almost on par with you guys. Been years since I did any C programming. Was mostly to build GUI interfaces for SQL engines and just generic stuff one gets out of the books, as well as a little bit of at the time fancy windows for UNIX based machines using the NCURSERS packages. But I am not much of a C programmer at this point!UNIX shells where so powerful I usually could relie on them to do the job.Now for the catch-twenty two! Takers..........Please!Any suggestions as to where I might find a reliable gauge.h file that will allow me to compile the various examples in the sd2gau15 distribution? I assume that zip is primarily for FS2000/CFS2.For the past five hours or so I have with no success been able to compile any of those SUPPOSEDLY CFS2 COMPATIBLE gauge files.Always get tons of warnings, and errors! Sure looks again like it is due to a non-compatible gauges.h file. I am using the Borland 5.2.I was under the impression that the gauge.h header file(s) found in sd2gau15.zip AS WELL AS THE source files where for FS2000/CFS2.But I cannot get any of them to work with the included gauge.h files.The only one that worked was as stated above, the FlightMap gauge source files. And there I had to use the FS2K2Gauges.h file to get it to compile. Which obviouse to you guys makes sense since the gauge is for the FS2K2 environment.I am simply confused over what to use for CFS2 simulator.Thank you once again for any help on this issue. And I hope I am not wearing out my welcome.very best regards,George

Share this post


Link to post
Share on other sites

The information in the documents in sd2gau15.zip is valid for any simulator version after Fs2000, also most of the source code, which can be identically used for the versions (together with the gauges.h of fs98 the info and sources would be broadly FS98 compatible too).The gauges.h itself is for Fs2002 (and later), also the flightmap gauge works and compiles only for Fs2002. The last sd2gauxx.zip with a fs2000 (and cfs2) compatible gauges.h was sd2gau12.zip. Sorry but time went on. I can send you the "old" issures if you don't have them.It is as I already said possible to "upscale" the FS2000 gauges.h to CFS2 by adding some help_ids/keys/tokens. I have never tried to "downcsale"the FS2002 gauges.h to CFS2. It might be, that some techniques, e.g. the GDI drawing by using IMAGE_CREATE_DIBSECTION, were already usable in CFS2, but I don't know, I never tried. CFS2 being an "interims"-FS lacks of all information about.Again: usually all gauges for FS2000/CFS2 work also for FS2002 and FS2004, even without recompiling. For most of the sources the only difference is in using a different gauges.h (e.g. to prevent the "old modules" warning in Fs2004). There are however some sources that rely on the FS2002 gauges.h with it changes, namely the flightmap.c. These won't work with old gauge.h's and also not for older FS versions then FS2002.Arne Bartels

Share this post


Link to post
Share on other sites

Arne,After not being able to respond to your offer, I keeped getting cannot display page....screen, I sent you a email, indicating that I would like to have the sd2gau12.zip file when you can make some time to do so. As mail message indicated, a hyperlink in this thread for the download is fine with me or if you wanted to mail it via. email.Thank you for your comments in your last thread. Obviously I have a lot of things to learn before I will be able to do anything worth while. But hopefully it will stay interesting.take care,George

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this