Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: Goober5000 on November 17, 2005, 11:24:37 am
-
Microsoft is making Visual Studio Express available as a free download for one year:
http://msdn2.microsoft.com/en-us/express/aa975050.aspx
You have to pay for it ($50) if you want to continue using it after the year is up, unfortunately, but it looks like a neat option for someone who wants to program but doesn't want to use the command-line compiler.
One caveat: You can't use MFC under it, which means you won't be able to compile FRED. But newbie programmers probably shouldn't be developing for FRED anyway. ;)
-
Cool. One year to test it it's great from Microsoft.
-
Are you sure about that? :D FAQ states quite clearly, that you do not have to pay for the software :)
Do customers who acquire the Visual Studio Express products during the free promotional pricing period have to pay after the first year if they want to continue to use them?
No, as long as you download Visual Studio Express on or before November 7th 2006, you will not have to pay for it.
-
Will this program handle C++? I've got some stuff I want to do for another game which requires it.
-
Will this program handle C++? I've got some stuff I want to do for another game which requires it.
Here the answer from the FAQ ( http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing ):
42. Does Visual C++ 2005 Express Edition include MFC and ATL?
No, MFC and ATL are not included with Visual C++ 2005 Express. MFC and ATL will be included in all other Visual Studio 2005 Editions.
43. I noticed that some of the other Express Editions have "Starter Kits." Where are the Starter Kits for Visual C++ 2005 Express?
There currently aren't any full-fledged Starter Kits for Visual C++ 2005 Express. However, Visual C++ Express can be used to build many existing C++ projects. Additionally, sample code and documentation are included with Visual C++ Express.
So, you have C++ but no librairies for MFC project or ATL if you want to make windows.
-
Are you sure about that? :D FAQ states quite clearly, that you do not have to pay for the software :)
Hm, interesting. They must have changed that entry recently, because when I read the FAQ it said you had to pay to continue using it.
-
The stuff I'm wanting to work with doesn't involve making windows. It's just that the mission/campaign scripting API of Starfleet Command: Orion Pirates uses C++. So no window libraries shouldn't be an issue for me at all. Cool.
-
Decided to try this out today, never did manage to convince myself that buying a copy of visual studio was worth it for hobby programming, but free certainly is a compelling price. Not to mention an IDE is a nice upgrade over textpad and an old command line compiler...
So downloaded and installed it, and the CVS instructions in the SCP page set me up with the code shortly thereafter. So a good start :) But damn... having loaded it up (using the MSVC 2005 project, which worked perfectly as expected) and taken a quick look, I have to admit that I'm totally lost in this code. Never dealt with anything even remotely this large before, but I guess that's to be expected from a fully fledged commercial (well, formerly commercial) game. I had to actually use search just to locate the main functions. You guys need an animated guide or something to help people like me who have never seen anything as large as this before get started :p
Anyway, tried to compile just to see if it'd work and got a lot of missing file errors. I guess hoping that just having a professional compiler would be enough was a bit over-optimistic. But then, I've never really worried about 3d graphics or any kind of sound in what I've done so far, so this is a brave new world for me. One time has to be the first though, doesn't it? Anyway, in case anyone else who decides to try this has problems similar to mine, I figure I should list how I got most of my problems fixed:
Errors about windows, winsock and such: You need the platform SDK, which you can get from http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&categoryid=10. If using XP like me, you want the "Windows server 2003 SP1" SDK, in case that isn't obvious (it wasn't to me). After installing it you need to register its directories with VC++. The SDK includes a utility to do this automatically, but it didn't work fully for me - The include directory wasn't registered. If it's the same for you, instead open VC++, go to Tools->Options->Projects & Solutions->VC++ directories, select 'Include files', and add a line with the path to the include directory of your platform SDK installation. Might be a good idea to check if it registered library files properly just in case (under library files instead of include files, and with the lib directory instead of include. Only difference), it did for me but you never know.
Errors about ogg, vorbis and the like: You need libogg and libvorbis. but if you got the code from CVS, you already have them - They're in fs2_open/oggvorbis in the directory where you put the CVS code. You just need to register the include and lib directories with VC++ in the same way I described for the platform SDK.
Errors about d3d8: This is the directX SDK that's missing, but again, you probably already have the parts you need in the fs2_open/dx8sdk and fs2_open/dx9sdk directories. Just register the include and lib directories for both of them as before.
Doing this took care of most errors for me. All but 6, in fact. Three were due to undeclared variables in for loops - Basically, 'for (i=0...)' instead of the proper 'for (int i=0...)' that I fixed as they showed up. But three I can't seem to figure out:
1) fatal error C1189: #error : Need to include strsafe.h after tchar.h. Now, it's pretty obvious what's wrong, but having no idea where specifically strsafe.h is included (a search didn't turn anything up) I can't fix it. Any hints?
2) BSCMAKE: error BK1506 : cannot open file '.\Release\Profile\dx8show.sbr': No such file or directory. I have no clue on this one, so any help would be appreciated.
3) LINK : fatal error LNK1181: cannot open input file 'Quartz.lib'. As far as I can tell (with the help of google) It's a DirectShow file, but I can't seem to find it in the partial SDKs that came with CVS. Would downloading the full DX9 SDK help?
Finally, there's a ton of warnings, but almost all of them are about variable conversions so nothing serious. I'll figure out how to turn those off eventually. Regardless, thanks for pointing out this IDE, and if anyone can help me solve these last few errors I'd be very grateful. And even if I can't get it to work for FSO, I'm sure I'll get good use out of it for other things :)
-
You definitely need to install a full DirectX SDK for DirectX to work. The files in CVS are only there to "patch" between different versions; they aren't the whole thing.
Those should take care of your problems. If (2) still persists, disable "Create browse info".
-
Thanks for the quick reply. I was apprehensive about suffering through a 200+ mb download if I didn't know whether it would fix anything, but I got it downloading while I was at work today so got it now.
I hadn't honestly expected it to fix the strsafe.h error, and indeed it didn't. I imagine for that I simply need to track down where those two files are included and then reverse the order they're included in, just as the error message says. That's the project for the day, or week, depending on time and/or luck.
[Edit cause I'm apparently not as smart as I thought I was] The quartz.lib error turned out to be a human error. Instead of registering the lib/x86 of the dx9sdk patch directory you just mentioned, I'd just registered lib like i did for dx8sdk. You'd already provided me with what I needed... I just needed to tell VC++ to look in the right place instead of the wrong one.
And finally, your fix for (2) worked perfectly, so that just leaves that one error. Hope lives yet :)
[Edit] Well, almost one error... after that I was missing libjpeg.lib. Fairly certain I didn't forget to register anything this time, as there isn't a lib directory in the cvs libjpeg version at all. Got that fixed by downloading libjpeg from http://www.sfu.ca/~swongu/libjpeg/, but now another error has me stumped: LINK : fatal error LNK1181: cannot open input file 'code.lib'. That, I'm afraid, is a bit too generic a name for google to be of much help. Just in case it once again turns out that I'm to blame with a dumb registration error though, I'm sorry in advance if I end up wasting anyone's time with this problem.
For ease of error-tracking, here is the stuff I've downloaded and registered so far, with both include and library files as applicable (double and triple checked that after my earlier oversights):
dx8sdk, dx9sdk, libjpeg and oggvorbis from CVS.
The platform SDK linked to in my first post.
The october 2005 DirectX SDK found here: http://www.microsoft.com/downloads/details.aspx?FamilyId=1C8DC451-2DBE-4ECC-8C57-C52EEA50C20A&displaylang=en
The libjpeg download mentioned above.
libvorbis 1.1.2 and libogg 1.1.3 found here: http://www.xiph.org/downloads/
I take it i'm still missing something important in that list.
-
:wtf: Okay, the lib errors mean the project isn't set up right. Libjpeg.lib is supposed to be generated by the libjpeg code out of CVS. Likewise code.lib with the Freespace code. You may have to build all the individual projects manually or something.
As for strsafe.h, try shuffling the order of the #include files in MSVC. If the DX lib is included before the MSVC libs, try reversing them. Keep shuffling them around; one of those combinations should work. It did for me. ;)
Incidentally the workspace and project files in CVS are supposed to have all this tweaky stuff done already. :( I know the MSVC 6 one does; I'm maintaining it myself. ;) You might want to see if you can import the MSVC 6 workspace.
-
Thanks, I think I see what's going on now :) It all hinges on the strsafe.h error since that's in the code part of the project, and thus the error in compiling that is keeping libjpeg.lib and code.lib from being available to the freespace2 part that relies on them later in the process. So I guess it really is just one error. I'll get to tweaking, and when/if get it resolved and working I'll make sure to post what to change to make it work. Will save the MSVC6 project as a last resort option though, as it would give me a fair amount of personal satisfaction to get this working by now ;)
-
I finally got rid of the strsafe error by moving the include for tchar.h in dx8show to be the first instead of the last include, but then I just ran into another bunch of missing file errors. Having become pretty familiar with the code and the IDE by now though, I think I can say definitively that the MSVC 2005 solution is simply buggered all to hell.
Basically, the whole ai directory doesn't show up anywhere in the 2005 solution, instead all the files from it are somehow placed into the ships directory. That's what gave the new missing file errors, since they obviously aren't there. I managed to fix -that- error by copying the full contents of the ai directory over to ships, which finally allowed code.lib to compile... only to once again be missing libjpeg.lib when trying to compile freespace2 at the end.
So I finally caved in and loaded up and converted the MSVC 6 workspace to compare the two. Sure enough, it's got both a libjpeg and even a liblua project, neither of which are anywhere in the 2005 solution. So no wonder they were missing every time I tried to compile. Still, it did do some good. I've got a far better understanding of both the IDE and the code itself after compiling, troubleshooting, recompiling, retroubleshooting ad infinitum over the last few days :) Nowhere near as lost in the code now as I was at first, and even I managed to fix a few bugs (well, tiny ones, but they're still bugs! Those would be the for loop errors I spoke of at first, though I'm not even sure most compilers will actually refuse to compile because of them, rather than just throwing a warning).
With that out of the way, on to the important stuff: Using a fresh CVS copy since I had no idea how much my earlier tampering might have messed up, and using the converted MSVC 6 workspace, things went much smoother. libjpeg.lib and liblua.lib compiled without a hitch on first run, while code.lib just needed those couple of for loops fixed and browse information disabled once more to compile, though with the following warnings:
Creating library...
vdsound.lib(DSOUND.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in vdinput.lib(DINPUT.dll); second definition ignored
vdsound.lib(DSOUND.dll) : warning LNK4221: no public symbols found; archive member will be inaccessible
multi_oo.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
Very good for a practically untweaked, recently converted workspace :) freespace2 didn't play as nice though. First, it came up with an error about missing libci.lib, but a little googling had that taken care of quickly by just telling the compiler to ignore it. After that though, it went really bad with the ton of errors shown in the next post. Still, it's the farthest I've seen it go yet, so overall I'm pretty happy :D
-
The errors:
Generating Code...
Compiling resources...
Linking...
Dxerr8.lib(dxerr8.obj) : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _DXGetErrorString8A@4
code.lib(WinDebug.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(gropengl.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(ModelRead.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(Multi.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(cfile.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
freespace.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(MissionParse.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(cmdline.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(Sound.obj) : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__ShowWindow@8
freespace.obj : error LNK2019: unresolved external symbol __imp__ShowWindow@8 referenced in function "void __cdecl game_init(void)" (?game_init@@YAXXZ)
code.lib(OsApi.obj) : error LNK2001: unresolved external symbol __imp__ShowWindow@8
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__ShowWindow@8
code.lib(gropengl.obj) : error LNK2001: unresolved external symbol __imp__ShowWindow@8
freespace.obj : error LNK2019: unresolved external symbol __imp__ShowCursor@4 referenced in function "void __cdecl game_init(void)" (?game_init@@YAXXZ)
code.lib(OsApi.obj) : error LNK2001: unresolved external symbol __imp__ShowCursor@4
code.lib(WinDebug.obj) : error LNK2001: unresolved external symbol __imp__ShowCursor@4
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__ShowCursor@4
freespace.obj : error LNK2019: unresolved external symbol __imp__ClipCursor@4 referenced in function "void __cdecl game_init(void)" (?game_init@@YAXXZ)
code.lib(OsApi.obj) : error LNK2001: unresolved external symbol __imp__ClipCursor@4
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__ClipCursor@4
freespace.obj : error LNK2019: unresolved external symbol __imp__CoUninitialize@0 referenced in function _WinMain@16
code.lib(ds.obj) : error LNK2001: unresolved external symbol __imp__CoUninitialize@0
freespace.obj : error LNK2019: unresolved external symbol __imp__SetForegroundWindow@4 referenced in function _WinMain@16
code.lib(gropengl.obj) : error LNK2001: unresolved external symbol __imp__SetForegroundWindow@4
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__SetForegroundWindow@4
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__SetForegroundWindow@4
freespace.obj : error LNK2019: unresolved external symbol __imp__FindWindowA@8 referenced in function _WinMain@16
freespace.obj : error LNK2019: unresolved external symbol __imp__CoInitialize@4 referenced in function _WinMain@16
code.lib(Font.obj) : error LNK2019: unresolved external symbol __imp__GetTextExtentPoint32A@16 referenced in function "void __cdecl gr_get_string_size_win(int *,int *,char *)" (?gr_get_string_size_win@@YAXPAH0PAD@Z)
code.lib(Font.obj) : error LNK2019: unresolved external symbol __imp__SelectObject@8 referenced in function "void __cdecl gr_get_string_size_win(int *,int *,char *)" (?gr_get_string_size_win@@YAXPAH0PAD@Z)
code.lib(movie.obj) : error LNK2001: unresolved external symbol __imp__SelectObject@8
code.lib(Key.obj) : error LNK2019: unresolved external symbol __imp__GetKeyboardState@4 referenced in function "int __cdecl key_numlock_is_on(void)" (?key_numlock_is_on@@YAHXZ)
code.lib(Key.obj) : error LNK2019: unresolved external symbol __imp__SetKeyboardState@4 referenced in function "void __cdecl key_turn_off_numlock(void)" (?key_turn_off_numlock@@YAXXZ)
code.lib(Mouse.obj) : error LNK2019: unresolved external symbol __imp__ScreenToClient@8 referenced in function "void __cdecl getWindowMousePos(struct tagPOINT *)" (?getWindowMousePos@@YAXPAUtagPOINT@@@Z)
code.lib(Mouse.obj) : error LNK2019: unresolved external symbol __imp__GetCursorPos@4 referenced in function "void __cdecl getWindowMousePos(struct tagPOINT *)" (?getWindowMousePos@@YAXPAUtagPOINT@@@Z)
code.lib(Mouse.obj) : error LNK2019: unresolved external symbol __imp__SetCursorPos@8 referenced in function "void __cdecl setWindowMousePos(struct tagPOINT *)" (?setWindowMousePos@@YAXPAUtagPOINT@@@Z)
code.lib(Mouse.obj) : error LNK2019: unresolved external symbol __imp__ClientToScreen@8 referenced in function "void __cdecl setWindowMousePos(struct tagPOINT *)" (?setWindowMousePos@@YAXPAUtagPOINT@@@Z)
code.lib(GrD3D.obj) : error LNK2001: unresolved external symbol __imp__ClientToScreen@8
code.lib(GrD3DRender.obj) : error LNK2001: unresolved external symbol __imp__ClientToScreen@8
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function "void __cdecl os_config_remove(char *,char *)" (?os_config_remove@@YAXPAD0@Z)
code.lib(swff_lib.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
d3dx8.lib(cpudetect.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegDeleteValueA@8 referenced in function "void __cdecl os_config_remove(char *,char *)" (?os_config_remove@@YAXPAD0@Z)
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegCreateKeyExA@36 referenced in function "void __cdecl os_config_remove(char *,char *)" (?os_config_remove@@YAXPAD0@Z)
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegDeleteKeyA@8 referenced in function "void __cdecl os_config_remove(char *,char *)" (?os_config_remove@@YAXPAD0@Z)
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegSetValueExA@24 referenced in function "void __cdecl os_config_write_string(char *,char *,char *)" (?os_config_write_string@@YAXPAD00@Z)
code.lib(swff_lib.obj) : error LNK2001: unresolved external symbol __imp__RegSetValueExA@24
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function "char * __cdecl os_config_read_string(char *,char *,char *)" (?os_config_read_string@@YAPADPAD00@Z)
d3dx8.lib(cpudetect.obj) : error LNK2001: unresolved external symbol __imp__RegQueryValueExA@24
code.lib(OsRegistry.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function "char * __cdecl os_config_read_string(char *,char *,char *)" (?os_config_read_string@@YAPADPAD00@Z)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__SetWindowTextA@8 referenced in function "void __cdecl os_set_title(char *)" (?os_set_title@@YAXPAD@Z)
code.lib(multi_options.obj) : error LNK2001: unresolved external symbol __imp__SetWindowTextA@8
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__SetWindowTextA@8
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__PostMessageA@16 referenced in function "void __cdecl os_cleanup(void)" (?os_cleanup@@YAXXZ)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__PostMessageA@16
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4 referenced in function "unsigned long __cdecl win32_process2(unsigned long)" (?win32_process2@@YAKK@Z)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__DispatchMessageA@4
-
code.lib(movie.obj) : error LNK2001: unresolved external symbol __imp__DispatchMessageA@4
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function "unsigned long __cdecl win32_process2(unsigned long)" (?win32_process2@@YAKK@Z)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__TranslateMessage@4
code.lib(movie.obj) : error LNK2001: unresolved external symbol __imp__TranslateMessage@4
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__PeekMessageA@20 referenced in function "unsigned long __cdecl win32_process2(unsigned long)" (?win32_process2@@YAKK@Z)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__PeekMessageA@20
code.lib(movie.obj) : error LNK2001: unresolved external symbol __imp__PeekMessageA@20
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__EnumWindows@8 referenced in function "void __cdecl os_check_debugger(void)" (?os_check_debugger@@YAXXZ)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__GetWindowTextA@12 referenced in function "int __stdcall os_enum_windows(struct HWND__ *,char *)" (?os_enum_windows@@YGHPAUHWND__@@PAD@Z)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__GetWindowTextA@12
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__DefWindowProcA@16 referenced in function "long __stdcall win32_message_handler(struct HWND__ *,unsigned int,unsigned int,long)" (?win32_message_handler@@YGJPAUHWND__@@IIJ@Z)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__PostQuitMessage@4 referenced in function "long __stdcall win32_message_handler(struct HWND__ *,unsigned int,unsigned int,long)" (?win32_message_handler@@YGJPAUHWND__@@IIJ@Z)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__PostQuitMessage@4
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__GetMessageTime@0 referenced in function "long __stdcall win32_message_handler(struct HWND__ *,unsigned int,unsigned int,long)" (?win32_message_handler@@YGJPAUHWND__@@IIJ@Z)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__UpdateWindow@4 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__UpdateWindow@4
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__UpdateWindow@4
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__CreateWindowExA@48 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(stand_gui.obj) : error LNK2001: unresolved external symbol __imp__CreateWindowExA@48
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__GetWindowRect@8 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__GetWindowRect@8
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__GetDesktopWindow@0 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__GetSystemMetrics@4 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__GetSystemMetrics@4
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__RegisterClassExA@4 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__LoadCursorA@8 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(OsApi.obj) : error LNK2019: unresolved external symbol __imp__LoadIconA@8 referenced in function "int __cdecl win32_create_window(void)" (?win32_create_window@@YAHXZ)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__CreateDialogParamA@20 referenced in function "void __cdecl std_create_gen_dialog(char *)" (?std_create_gen_dialog@@YAXPAD@Z)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__DestroyWindow@4 referenced in function "void __cdecl std_destroy_gen_dialog(void)" (?std_destroy_gen_dialog@@YAXXZ)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__GetDlgItem@8 referenced in function "void __cdecl std_gen_set_text(char *,int)" (?std_gen_set_text@@YAXPADH@Z)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__SendMessageA@16 referenced in function "void __cdecl std_connect_add_ip_string(char *)" (?std_connect_add_ip_string@@YAXPAD@Z)
code.lib(WinDebug.obj) : error LNK2001: unresolved external symbol __imp__SendMessageA@16
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__LoadBitmapA@8 referenced in function "void __cdecl std_multi_init_multi_controls(struct HWND__ *)" (?std_multi_init_multi_controls@@YAXPAUHWND__@@@Z)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__SetWindowPos@28 referenced in function "void __cdecl std_mutate_sheet(void)" (?std_mutate_sheet@@YAXXZ)
code.lib(gropengl.obj) : error LNK2001: unresolved external symbol __imp__SetWindowPos@28
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__SetWindowPos@28
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__SetWindowPos@28
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__GetWindow@8 referenced in function "void __cdecl std_mutate_sheet(void)" (?std_mutate_sheet@@YAXXZ)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__SetWindowLongA@12 referenced in function "struct HWND__ * __cdecl std_init_property_sheet(struct HWND__ *)" (?std_init_property_sheet@@YAPAUHWND__@@PAU1@@Z)
code.lib(gropengl.obj) : error LNK2001: unresolved external symbol __imp__SetWindowLongA@12
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__SetWindowLongA@12
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__GetWindowLongA@8 referenced in function "struct HWND__ * __cdecl std_init_property_sheet(struct HWND__ *)" (?std_init_property_sheet@@YAPAUHWND__@@PAU1@@Z)
code.lib(stand_gui.obj) : error LNK2019: unresolved external symbol __imp__WaitMessage@0 referenced in function "unsigned long __cdecl standalone_process(unsigned short)" (?standalone_process@@YAKG@Z)
code.lib(Joy_ff.obj) : error LNK2019: unresolved external symbol __imp__wsprintfA referenced in function "int __cdecl joy_ff_init(void)" (?joy_ff_init@@YAHXZ)
code.lib(ExceptionHandler.obj) : error LNK2001: unresolved external symbol __imp__wsprintfA
code.lib(WinDebug.obj) : error LNK2019: unresolved external symbol __imp__CloseClipboard@0 referenced in function "void __cdecl dump_text_to_clipboard(char *)" (?dump_text_to_clipboard@@YAXPAD@Z)
code.lib(WinDebug.obj) : error LNK2019: unresolved external symbol __imp__SetClipboardData@8 referenced in function "void __cdecl dump_text_to_clipboard(char *)" (?dump_text_to_clipboard@@YAXPAD@Z)
code.lib(WinDebug.obj) : error LNK2019: unresolved external symbol __imp__EmptyClipboard@0 referenced in function "void __cdecl dump_text_to_clipboard(char *)" (?dump_text_to_clipboard@@YAXPAD@Z)
code.lib(WinDebug.obj) : error LNK2019: unresolved external symbol __imp__OpenClipboard@4 referenced in function "void __cdecl dump_text_to_clipboard(char *)" (?dump_text_to_clipboard@@YAXPAD@Z)
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__EndPaint@8 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__DeleteObject@4 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
d3dx8.lib(cd3dxresource.obj) : error LNK2001: unresolved external symbol __imp__DeleteObject@4
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__Polygon@12 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__CreateSolidBrush@4 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__BeginPaint@8 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
code.lib(movie.obj) : error LNK2019: unresolved external symbol __imp__InvalidateRect@12 referenced in function "bool __cdecl movie_play(char *)" (?movie_play@@YA_NPAD@Z)
code.lib(ExceptionHandler.obj) : error LNK2019: unresolved external symbol __imp__wvsprintfA@12 referenced in function "void __cdecl hprintf(void *,char *,...)" (?hprintf@@YAXPAXPADZZ)
code.lib(ExceptionHandler.obj) : error LNK2019: unresolved external symbol __imp__GetUserNameA@8 referenced in function "void __cdecl RecordSystemInformation(void *)" (?RecordSystemInformation@@YAXPAX@Z)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__ChangeDisplaySettingsA@8 referenced in function "void __cdecl opengl_go_fullscreen(void)" (?opengl_go_fullscreen@@YAXXZ)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__SetActiveWindow@4 referenced in function "void __cdecl opengl_go_fullscreen(void)" (?opengl_go_fullscreen@@YAXXZ)
code.lib(GrD3Dsetup.obj) : error LNK2001: unresolved external symbol __imp__SetActiveWindow@4
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__SwapBuffers@4 referenced in function "void __cdecl gr_opengl_flip(void)" (?gr_opengl_flip@@YAXXZ)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__SetDeviceGammaRamp@8 referenced in function "void __cdecl gr_opengl_set_gamma(float)" (?gr_opengl_set_gamma@@YAXM@Z)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__GetDeviceGammaRamp@8 referenced in function "int __cdecl opengl_init_display_device(void)" (?opengl_init_display_device@@YAHXZ)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__SetPixelFormat@12 referenced in function "int __cdecl opengl_init_display_device(void)" (?opengl_init_display_device@@YAHXZ)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__ChoosePixelFormat@8 referenced in function "int __cdecl opengl_init_display_device(void)" (?opengl_init_display_device@@YAHXZ)
code.lib(gropengl.obj) : error LNK2019: unresolved external symbol __imp__GetDC@4 referenced in function "int __cdecl opengl_init_display_device(void)" (?opengl_init_display_device@@YAHXZ)
code.lib(GrD3Dsetup.obj) : error LNK2019: unresolved external symbol __imp__GetClientRect@8 referenced in function "bool __cdecl d3d_init_win32(int,int)" (?d3d_init_win32@@YA_NHH@Z)
code.lib(dx8show.obj) : error LNK2001: unresolved external symbol __imp__GetClientRect@8
code.lib(swff_lib.obj) : error LNK2019: unresolved external symbol __imp__RegCreateKeyA@12 referenced in function "int __cdecl SWFF_WriteRegString(char const *,char const *)" (?SWFF_WriteRegString@@YAHPBD0@Z)
code.lib(dx8show.obj) : error LNK2019: unresolved external symbol __imp__CoCreateInstance@20 referenced in function "long __cdecl PlayMovieInWindow(struct HWND__ *,char *)" (?PlayMovieInWindow@@YAJPAUHWND__@@PAD@Z)
Dxerr8.lib(dxerr8.obj) : error LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _DXTraceW@20
d3dx8.lib(cpudetect.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyA@12 referenced in function "int __cdecl GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YAHKPADPAXK@Z)
Release/fs2_open_r.exe : fatal error LNK1120: 77 unresolved externals
Project : warning PRJ0018 : The following environment variables were not found:
$(FS2PATH)
Sorry about the multiple posts, but the character limit wouldn't allow any other way. Anyway, for now, sleep. Tomorrow, more experimentation.
-
Did you install the Platform SDK?
-
Make sure your directory list contains the dx8sdk include and lib directories.
-
The platform SDK is definitely installed, but that doesn't exclude the possibility of me having messed something up when telling vc++ where to find it. As for the dx8sdk, pretty sure I got it set up properly. Straight from my options->projects & solutions->vc++ directories window:
Include files:
C:\Programming\Platform SDK\Include
C:\Programming\Microsoft DirectX 9.0 SDK\Include
C:\FreeSpace\Code\fs2_open\oggvorbis\include
C:\FreeSpace\Code\fs2_open\dx9sdk\Include
C:\FreeSpace\Code\fs2_open\dx8sdk\include
$(VCInstallDir)include
$(VCInstallDir)PlatformSDK\include
$(FrameworkSDKDir)include
Library files:
C:\Programming\Platform SDK\Lib
C:\Programming\Microsoft DirectX 9.0 SDK\Lib\x86
C:\FreeSpace\Code\fs2_open\oggvorbis\lib
C:\FreeSpace\Code\fs2_open\dx9sdk\Lib\x86
C:\FreeSpace\Code\fs2_open\dx8sdk\lib
$(VCInstallDir)lib
$(VCInstallDir)PlatformSDK\lib
$(FrameworkSDKDir)lib
$(VSInstallDir)
$(VSInstallDir)lib
Is there some other place I need to specify the paths besides there, or is there something missing that should be there? Also, could it perhaps be related to the warnings from the first 3 projects? 'vdsound.lib(DSOUND.dll) : warning LNK4221: no public symbols found; archive member will be inaccessible' and 'multi_oo.obj : warning LNK4221: no public symbols found; archive member will be inaccessible' certainly sound like they might be able to cause linker errors later on.
Either way, I appreciate the help :)
[Edit] Well, after a fair amount of googling and experiementing, I got the whoping total of 77 errors from before reduced to 31 by adding a dependancy for user32.lib to the freespace2 project. That eliminated all of the 'external symbol __imp__MessageBoxA@16' errors, to be precise. The others are being a bit more troublesome as I'm not really getting many search results for those errors, but I can only assume the fix lies down the same avenue of missing project dependencies. What I have at the moment are: Quartz.lib Dxerr8.lib d3d8.lib d3dx8.lib odbc32.lib user32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib libjpeg.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib code.lib
I do notice a bunch looks opengl related though - Do I need another SDK for that?
-
I'm trying to build my fs_open_r.exe with MSVC++ 6 but I'm having this errors and warnings:
...
scripting.cpp
WARNING: Lua is not compiled in
WARNING: Python is not compiled in
C:\WinCVS\fs2_open\code\parse\scripting.cpp(423) : error C2065: 'lua_pushcfunction' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(423) : error C2065: 'lua_friendly_error' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(425) : error C2065: 'luaL_loadbuffer' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(427) : error C2065: 'lua_pcall' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(433) : error C2065: 'lua_get_args' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(433) : error C2065: 'script_lua_odata' : undeclared identifier
C:\WinCVS\fs2_open\code\parse\scripting.cpp(433) : error C2059: syntax error : ')'
...
...
speech.cpp
WARNING: You have not compiled speech into this build (use FS2_SPEECH)
voicerec.cpp
WARNING: You have not compiled voice recognition into this build (use FS2_VOICER)
...
...
iff_defs.cpp
Error executing cl.exe.
fs2_open_r.exe - 7 error(s), 4 warning(s)
I do know very few about coding, so I'm posting what I've done:
1. I've installed DirectX and Platform SDKs.
2. In VC++, I've set in Tools->Options->Directories, the INCLUDE and LIB ones for DirectX SDK, Platform SDK and dx8sdk, dx9sdk, lua, oggvorbis (their subdirectories I mean)
3. I've just updated CVS fs2_open
4. I've opened Freespace2.dsw in "fs2_open\projects\MSVC_6"
5. I've selected "Freespace2 - Win 32 Release" as Active Project Configuration in Build->Set Active Configuration
6. I've pressed build (F7)
7. And I get these errors and warnings but no fs2_open_r.exe at all
Can anyone help me?
-
You've done everything right. Those scripting.cpp errors are just bugs with compiler directives that WMC needs to fix. The warnings about speech are just to let you know that simulated speech support won't be in the game.
-
Define USE_LUA to get rid of the Lua warnings. I'm going to be taking out that #define tonight anyways, it keeps causing problems.
-
If that's going to require people to download the Lua SDK (or whatever it is), then bad move. Just keep the #defines up to date.
-
Finally had another go, using VC++ 6 this time. Works much better, except for just a few errors:
error LNK2001: unresolved external symbol "void __cdecl ship_start_animation_type(struct ship *,int,int,int)"
error LNK2001: unresolved external symbol "public: __thiscall triggered_rotation::triggered_rotation(void)"
error LNK2001: unresolved external symbol "int __cdecl match_animation_type(char *)"
error LNK2001: unresolved external symbol "void __cdecl ship_animation_set_initial_states(struct ship *)"
error LNK2001: unresolved external symbol "int __cdecl ship_get_animation_time_type(struct ship *,int,int)"
error LNK2001: unresolved external symbol "void __cdecl submodel_trigger_rotate(struct model_subsystem *,struct ship_subsys *)"
Release/fs2_open_r.exe : fatal error LNK1120: 10 unresolved externals
Error executing link.exe.
The following environment variables were not found
$(FS2PATH)
There were actually several errors for each of those shown above, but weeded duplicates out for easier reading. Since the rest of the errors before were caused by missing dependancies, I assume these two are as well, but I simply can't seem to find out what. Anyone want to post a list of the dependacies on a working project so I can see what I'm missing? So close now and I'd really like to get this to work :) Especially since I know it should work with VC++ 6.
Windows Server 2003 R2 Platform SDK and DirectX 9 SDK (april 2006) are installed and linked.
-
Be sure to add code/model/animation.cpp to the project file.
-
Yeah, that file was added only this week. The project files haven't yet been updated.
Also, FS2PATH should point to C:\Games\FreeSpace2 or wherever you have it installed.
-
fs2_open_r.exe - 0 error(s), 0 warning(s)
Adding that file solved everything. Thanks :) Now to have some fun.
[Edit] And it runs perfectly too. That was definitely worth the effort as well as the couple of bucks for a second (or third or fourth, given its age by now) hand copy of VC++ 6.
-
Did anyone ever get the MSVC_2005 version working?
I've already got a working setup with another compiler at home, but if I could compile with this VC2005Express, I could work on things more often, while away from my home computer. If anyone has a working project from within the last, I dunno, 4 months, could they post it, or send it to me?
I mean, I've been trying all of what Shade was doing, but it's still running into problems. If someone's got something already working it would save me a lot of time and frustration... :ick:
-
I did get a VC2005Express project setup and building late last year (started from scratch, to work better than the CVS one). The problem is that I don't have that stuff anymore. It was in a virtual machine I was using with VMware, but I hosed it a couple months back and had to delete the VM and create a new one. I've only gotten MSVC6 on it now, but if I get time this week I'll try and get 2005 back on it and create a new project file. And I'll get it updated in CVS this time. :)
-
Woot. Noticed the MSVC6 workspace was updated recently, so I took another few hammers at it :hammer: -- converting the May 15th MSVC6 workspace to MSVC2005. Finally got it working! Compile successful! So don't worry about messing with VMware for my sake -- now I can compile when away from home as well [which partially explains my lack of activity] :)
What I did:
added libci.lib to Ignore Specific Library
added ole32.lib advapi32.lib gdi32.lib user32.lib to Additional Dependencies.
who knows, maybe there's other workarounds... those libraries are in the Platform SDK, so I would have thought they would have worked without having to specifically specify them. heh, 'specifically specify'
Also, the openal\include .h files were complaining that they were in Mac format, but eh, easy fix on my end. Which reminds me, should I be submitting source files in Unix format, or is PC ok? (I'm guessing 'real' compilers can handle all formats... afaik VC2005 alone complains with only Mac format, which is dumb because VC2003 worked just fine. :rolleyes: But thought I'd doublecheck.)
-
Which reminds me, should I be submitting source files in Unix format, or is PC ok?
Unix (I believe everything is Unix already and we need to keep with one format). I think that there is a WinCVS option to automatically convert everything to Unix format on commit though so it shouldn't be too difficult for you to deal with. Other than PC files being larger, they can be a pain for non-Win platforms. The files will compile fine but are extrememly annoying to edit on.
-
How about some project files for compiling this under Borland C++ Builder 6. I tried converting one of the MSVC ones and it didn't work. Just got errors that I have no idea how to fix.
-
Well, depends which one 'one of' was... I'd recommend converting the MSVC_6 one as it's the only one of the MSVC I see that is recently updated. And then, post some of your errors. :) Wow, I haven't touched the Borland stuff for ages. Hope I can help.
-
I think that was the one I tried to convert, and I think it was *****ing multiple times about the same piece of syntax. I recently wiped and reloaded, so I'll have to reinstall, get the CVS into windows again, and try once more.
-
What about WX-Dev C++ Its what a friend of mine recommended i use,
their website is http://wxdsgn.sourceforge.net/
its completely free completely open source. in case anyone wanted to try it out
-
And what about the new 2008 version?
-
Hmm, it's nice to know something is still going on with Dev-C++, I thought Bloodshed let it die. I'll have to check out this WX version. I've mostly moved to VC++ Express 2005 and Code::Blocks though.
-
Thread unstickied, due to the original link no longer being valid.
-
I would have updated it to the new link, since it's still free, or maybe even to the new VS 2008 Express Editions Beta2.
http://msdn2.microsoft.com/en-us/express/aa975050.aspx (http://msdn2.microsoft.com/en-us/express/aa975050.aspx)
Actually, I clicked the link in the first post, you just hit download and it takes you to the main page for the 2005 editions.
-
who unstickied this?
-
:wtf:
Okay, you're banned for two days for being a complete moron. Repeatedly.
@chief: Thanks (the old link no longer worked for me). Link updated; thread restickied.
-
No prob. 2005 Express is currently my compiler of choice anyway, I've not had as much luck compiling with Code::Blocks, with any compiler. I might see how well the 2008 one fares though.
-
One wuestion, there is no way to use the Borland C++ right?
-
Not currently. There's nothing preventing someone from making a project for it.
-
But, what seems to be the problem whit Borland?
-
He didn't say there was a problem, other than no one has made a project file for it yet. If you want to convert it to a Borland project, it sounds like you should be able to.
-
:necro:
I was looking into C IDEs for a friend, and Microsoft is now offering 2008 Express (http://www.microsoft.com/express/download/) for free in addition to 2005 Express.
-
Yup, they had release candidates available a while ago, so I guess they got a final version out now? Wonder if they're going to get a SQL Server Express 2008 out.
-
just wondered if anybody has tried the netbeans ide. www.netbeans.org