Announcement

Collapse
No announcement yet.

Compiling the SDK

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Thror78
    replied
    Hi i got a problem and MMC advises me to simply change the cvplot.cpp.
    But i only find that new VC++8:

    Microsoft Visual Studio 2005
    Version 8.0.50727.42 (RTM.050727-4200)
    Microsoft Visual C++ 2005 76542-000-0000011-00125

    Can anyone tell me where i can find the old 2003 version, so that i simply have to follow the steps in post #1?

    Leave a comment:


  • MMC
    replied
    The new SDK is on the Warlords CD.

    Leave a comment:


  • PJayTycy
    replied
    So, what's the situation now with Warlords? Will we get a new SDK after the "final patch" again or no updated SDK ?

    Leave a comment:


  • Raion
    replied
    I thought I explain a little bit, although I also am doing this for my own benefit.

    Someone downloads the Platform SDK, and I had to download the segmented piece by piece 25mb sections of the Platform SDK. Then you need a program that will use it. However to me, and I may be wrong, it can be a dangerous program. But luckily once you get to the real setup.exe program, it usually wants to install to its own directory. That is fine, but you also have to Register it, or it will not install correctly to use.

    So, the first little segment program of about 94kB extracted two files. One was a ms-dos batch file program along with the "extract.exe" program for extracting the Platform SDK in the first place.

    So one starts up the ms-dos Command Prompt and trys to run the batch file --> PSDK-FULL.bat ---> but the echo is off (try and see what the heck is happening when you try and run it.) It disappears along with the ms-dos Command Prompt program and really nothing happened.

    Well the "PSDK-FULL.bat" file at the ms-dos Command Prompt needs a target Directory (Folder) to "extract" all the *.cab files segments you downloaded. Put in a Target Directory and it will work, however put it where you want it. (Make a new folder in Windows perhaps). On my computer, that was on the I:\ drive. (REM We need a targetdir ---- Echo Usage: psdk-full.bat )
    (Echo Example: psdk-full.bat c:\temp -----
    Example: psdk-full.bat c:\temp)

    However! You never see it, because it is done before you can even begin to read it, without changing the first line of the batch file by -- Right Clicking in Windows and choosing "Edit" as what to open it with. (do not open it, that just runs it, but you want to Edit the file, so the first line "Echo Off" is changed to "Echo On". (that way you an see what will happen while in the ms-dos Prompt and know you have to also give it a Target Directory.)


    So --> psdk-full.bat I:\PlatformSDK2005 (at the ms-dos Command Prompt is what you do to unleash the monster Platform SDK to get it even ready to install).

    Command Prompt Example:

    I:\PlatformSDK2005> psdk-full.bat I:\PlatformSDK2005

    since I am just changing the Directory in the ms-dos Command Prompt Program -- you can choose your own.

    C:> cd I:
    I:> cd PlatformSDK2005

    here we are now to run the batch file program with the above command to "extract" the files of the Platform SDK in some folder of your choosing after making a New Folder in the first place in Windows.

    Then it runs, so you go back to Windows and go in Explorer and to that Folder (Directory). There you will see -- three, and not just one -- setup.exe type programs. Well "setup.exe" is the program you want to run especially with Windows 2000 --- one is for AMD processor, and the other "setup.exe" type program is for 64bit OS systems, but "setup.exe" will also include those in the end but you really want 32bit Windows yet.

    Then you get to install it in Windows to somewhere, so I chose to install it to a subfolder of the Microsoft 2003 Toolkit (which also has some folders for using a Path statement in the Enviroment also which has it own "Include" and "Lib" files). So I installed it, and one has to "Register" it so Microsoft 2003 Toolkit can use it to build -- the game file. Otherwise, it gave that it would not Register it on my system -- since I probably have newer files already downloaded through Windows Update, and the program automatically "X" that out. But you have to "Register" it or the files will turn out not being usable to the Microsoft 2003 Toolkit program.

    Now, it is all installed in its own directory (folder) and now I can set Microsoft 2003 Toolkit -- like the first post, but put the PATH statements to the "Include" and "Lib" folders of the Platform SDK. That is where all those "windows.h" type files are and will be needed to "Compile" and "Link" the CvGameCoreDLL.dll program in the first place, or else in the "Default" PATH setup when 'installing' the Toolkit with its own "folders" that also have files in them. This makes putting the PATH to the Platform SDK look there first, and if not there, go to the 'Default" install path folders and look for whatever file it needs there after that.

    So, happy building of the CvGameCoreDLL.dll, and all of that afterwards.



    Just put the Correct Path in CodeBlocks as explained in the first post, but knowing where you installed the Platform SDK on your computer. This does not change any other program then, or anything else, because you put the Platform SDK in its own folder and changed the PATH to look for those files in the Microsoft 2003 Toolkit similiar to the first post.

    So you can use any Platform SDK if it works with the Microsoft 2003 Toolkit, depending on what was used to build the file in the first place -- like CvGameCoreDLL.dll file.

    This will ensure that the file you build will be compatible with the game.


    blah!
    Last edited by Raion; May 27, 2006, 12:57.

    Leave a comment:


  • Raion
    replied
    Better to use the Microsoft Visual C++ Toolkit 2003 for this changing the CvGameCoreDLL.dll project.

    Include files location if anyone wanted to know:

    CvGameCoreDLL.h --> Include files location

    windows.h // PlatformSDK\Include
    MMSystem.h // PlatformSDK\Include
    crtdbg.h // I:\Microsoft Visual C++ Toolkit 2003\include
    vector // I:\Microsoft Visual C++ Toolkit 2003\include
    list // I:\Microsoft Visual C++ Toolkit 2003\include
    tchar.h // I:\Microsoft Visual C++ Toolkit 2003\include
    math.h // I:\Microsoft Visual C++ Toolkit 2003\include
    assert.h // I:\Microsoft Visual C++ Toolkit 2003\include
    map // I:\Microsoft Visual C++ Toolkit 2003\include
    hash_map // I:\Microsoft Visual C++ Toolkit 2003\include

    CvString.h

    string // I:\Microsoft Visual C++ Toolkit 2003\include also includes string.h and xstring and mbstring.h and cstring

    Also if anyone wanted to turn-off Intellisense in Visual C++ 2005 Express:

    Simply rename or delete \VC\vcpackages\feacp.dll

    Other than that, Intellisense takes a long time to update, and the rest is (changing compiler settings or linker settings or "Forcing a Path to Use" like 2003 Toolkit instead) may be done, but getting past the issues that others are also having with all of it, is just the way Microsoft Programmed anything with 2005 in the Title of the Product.


    Back to Codeblocks then.

    Leave a comment:


  • Raion
    replied
    Oh, the reason for changing the C++ Part (compiler) and the Linker part of the Configuration which can be brought up by Right Clicking on the Project and selecting --> Property Pages, is to set the Compiler and Linker to something that may (and it is a big may) make it more compatible with the compiler and linker of VisualStudio.NET 2003. As of yet I do not know, if anything will work.

    One can look at the old Project file (the 7.1 Version) in Notepad (it is text) and the New one (Project file in the 8.0 version which also contains more - so that makes it difficult to decide some items) and where it states something with a number like "3" as the value, if you select the same thing in the new compiler and go through all of that, the Options I am assuming on one of those Command Lines start with "0" with some of the dropdown lists to select whatever.

    An example is what machine are you Building the file for:
    In the old project file (*.vcproj) the value for Machine like listed up above in the Previous Post is "3", so in the dropdown list for that item, start with "0" and pick the fourth one, which would give the value of "3" even though it states that it is for an I86x machine which of course is a Intel processor. Sorry, only can pick one or the other. With some -- that left the phrase "Inherit from other project or ........." or something like that, so I wonder if that will even happen since the old project file is not really loaded up in the New Project.

    In the text of those files is what all those Settings are but written out in 'text', but more Options for Settings are in Visual Studio 2005, and some, well, may be a guess right now.

    Most of the ones for Visual Studio 2003 you can find in Visual Studio 2005 to set all of that via the Property Page, which I just call the Configuration Manager, or "How are you going to compile and link this project type question?".

    It may not all work, as one Option is Setting the language to use, but that is for the C runtime Library, as in ---> Don't set it (probably means use the Default), Set it to C runtime Library -- pure code, Set it to C runtime Library -- Safe code (I think the compiler Defaults to that Option now, thus the Conversion Wizard perhaps), or Set that Option to C runtime Library -- Old Syntax.
    The only problem is what Old Syntax are they talking about:
    The real old Syntax like PrintF functions calls or the slightly newer Syntax like what was before with their Programming IDE that may match or use the older code that makes it more compatible with Previous Versions of *.NET.

    Of course, that may not do anything, because it is C++ one is actually using, but it may, but then again, only it can be tried.

    I know one that could be changed and that was the automation setting of "/EHsc" to "/EHa" by that Conversion Wizard as the Default, which has a Direct Relation to being different than what is wanted, according to the Settings used in CodeBlocks for that Item.

    That is where all those items are, and that is where you can change them all, and perhaps, it may or may not work anyway.

    Leave a comment:


  • Raion
    replied
    Edit this post, although I think some of the settings will still be wrong as of yet:

    I tried to go by the old vcproj file which holds the information but there is more in Visual C++ 2005 Express, so trying to make it the same, well, is hard to do:

    C/C++ Command Line:

    Debug:

    /O2 /I "L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Boost-1.32.0\include"
    /I "L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Python24\include"
    /D "WIN32" /D "_DEBUG" /D "_WINDOWS"
    /D "_USRDLL" /D "CVGAMECOREDLL_EXPORTS"
    /D "_WINDLL" /D "_MBCS" /FD /EHsc /RTC1 /MDd /GS- /Gy /Zc:wchar_t- /Zc:forScope- /Fo"Debug\\" /Fd"Debug\vc70.pdb" /W3 /nologo /c
    /ZI /clrldSyntax /TP /errorReportrompt


    Release:
    /O2 /I "L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Boost-1.32.0\include"
    /I "L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Python24\include"
    /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "CVGAMECOREDLL_EXPORTS" /D "_WINDLL"
    /D "_MBCS" /FD /EHsc /RTC1 /MD /GS- /Gy /
    Zc:wchar_t- /Zc:forScope- /Fo"Release\\" /Fd"Release\vc70.pdb" /W3 /nologo /c
    /ZI /clrldSyntax /TP /errorReportrompt

    Linker Command Line:

    Debug:

    /OUT:"Debug\CvGameCoreDLL.dll" /INCREMENTAL:NO /NOLOGO
    /LIBPATH:"L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Python24\libs"
    /LIBPATH:"L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Boost-1.32.0\libs"
    /DLL /MANIFEST /MANIFESTFILE:"Debug\CvGameCoreDLL.dll.intermediate.manifest" /DEBUG /
    PDB:"l:\sdknewproject\debug\CvGameCoreDLL.pdb"
    /SUBSYSTEM:WINDOWS /OPT:NOWIN98
    /IMPLIB:"Debug/CvGameCoreDLL.lib" /MACHINE:X86
    /FIXED:No /ERRORREPORT:PROMPT boost_python-vc71-mt-gd-1_32.lib
    winmm.lib kernel32.lib

    Release:

    /OUT:"Release\CvGameCoreDLL.dll" /INCREMENTAL:NO /NOLOGO
    /LIBPATH:"L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Python24\libs"
    /LIBPATH:"L:\SDKNewProject\CvGameCoreDLL_v161\CvGameCoreDLL\ Boost-1.32.0\libs"
    /DLL /MANIFEST /MANIFESTFILE:"Release\CvGameCoreDLL.dll.intermediate.manifest" /DEBUG
    /PDB:"l:\sdknewproject\release\CvGameCoreDLL.pdb"
    /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF
    /OPT:NOWIN98 /IMPLIB:"Release/CvGameCoreDLL.lib"
    /MACHINE:X86 /FIXED:No /ERRORREPORT:PROMPT boost_python-vc71-mt-gd-1_32.lib
    winmm.lib kernel32.lib

    This is just what I ended up doing so far, and I sure the 'Release' version probably should have a few more changes to it, then being about the same as the 'Debug' version, but both can be set.

    It mentioned that using '/Zi' in the C++ part, then the Linker should also be set with that - but I see no where to set it. Instead of the Version 80 files somewhat listed, I threw in the 70 files name. That may have to be changed again, usually the file ends in *.pdb .

    It probably is still wrong. But..................

    I know this is long, but I will be:

    staring, staring, staring, staring, staring, staring at it all.

    That is going to be it for awhile, as anything else...............I do not know yet about any of it.
    Last edited by Raion; May 13, 2006, 19:03.

    Leave a comment:


  • Raion
    replied
    Okay. Using Visual C++ 2005 Express:

    Instead of opening up the Project file as a 'Project' I opened it up -- as a 'File'. Used 'Open File' instead of 'Open Project'.

    I viewed the vcproj file and noticed that it had in there that it was a 'Version 7.10' file. I said 'Why not just change that to 'Version 8.0' and see what happens?

    This is what happens:

    Your project file version is '8.0'. Visual Studio 2005 can only load version 7.0 and 7.1 project files.

    The following error has occurred during XML parsing:

    File: K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.vcproj
    Line: 12
    Column: 22
    Error Message:
    Unspecified error

    The file 'K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.vcproj' has failed to load.

    Otherwise I still get the Conversion Wizard starting up, and so far, I have not found a way to turn that off --- yet.

    Intellisense no doubt!


    Yes, it is, and after all of that, this is what I did:

    In Visual C++ 2005 Express, I started the program.
    On the 'File' menu item is 'New' of course, but one of the options is creating a 'New' Project from an 'Existing Project' and pointed to the folder that holds all the files from the CvGameCoreDLL SDK folder. Of course, I only named it CvGameCore for the Project, and pointed to another folder to hold all the files in. Now, what I have is a 'New' project file that looks similiar (I have not checked it all out yet) to the old 'Project File' given by the SDK, but in it it states now, that it is 'Version 8.0' instead of like the old one 'Version 7.1' and anything else just glancing at it looks about the same, although I will check it against the two versions to see.
    Now it loaded up, all the C++.cpp files, the Boost files and folder, and the Python 2.4 folder and files, and what I think is not loaded up is:
    The old project file, or Control file or:
    CvGameCoreDLL.vcproj.vspscc

    CvGameCoreDLL.vcproj

    Since it asked what kind of Project it would be, when it made it, one would have to state the option "Dll project" when it asks what kind of project it is. Then it will ask for 'Include files" and that stuff, and whether it is 'Debug' or not, but since I do not yet have the Platform SDK files, I left them blank for now. When I get those, then I will add all that stuff later for the PATH Environment and such.

    Right now, I am just comparing things to see what files it added:

    New Project file, which for some reason appends my user name to it, and a Solution file, and such, which appends my computer name to all of it.

    Right now, the Control file (and the old project file) is not in there yet, (but the Control file will be needed I think or something similiar when I get it all worked out), and I am just looking around.

    The Conversion Wizard, I don't think did anything, so if the files are the same, then of course there will be 'Errors' if anyone tried and 'Build It with the new compiler' but again, I am just fooling around with it for now.

    See what it states as wrong with it, I guess, as to anything.
    Last edited by Raion; May 13, 2006, 13:45.

    Leave a comment:


  • Raion
    replied
    Perhaps, someone should attempt to convey that message to them (Firaxis), and tell them about it, so at least they know about it, and perhaps could do that.

    Perhaps they are doing that, but alas again perhaps they are not.



    Append update:

    Probably the other people already using Visual Studio 2005 did this:

    You can Import and Export "Settings" for the program:
    Visual C++ 2005 Express (freebie program) to change things around first before loading up the Project.

    I doubt if that will do anything, but I may stare at it for awhile. Meaning that perhaps there is a way to turn off the Conversion Wizard, and change the compiler settings first for the project, but I doubt if it will make the 'coding' needed (to remain the same) for the 2003 version of CvGameCoreDLL.dll to not change with the above previous post listing about 'member functions' needing now the 'address-of' changes for the member functions anyway. Well, may not hurt to look, even if it accomplishes nothing in the end about it.

    No doubt Microsoft is in this World to make money, and not be compatible with previous versions of their software.

    Like ms-dos in Windows 2000 compared to Windows 98 starting up in ms-dos. Perhaps.

    Last edited by Raion; May 13, 2006, 11:46.

    Leave a comment:


  • PJayTycy
    replied
    Our only hope to compile with VC2005 is if Firaxis also switches to VC2005 for the Warlords expansion (and releases a new SDK for that ofcourse).

    Leave a comment:


  • Raion
    replied
    Well, do you want the exact differences I experienced with Visual C++ 2005 Express, which probably also requires a Plug-In for Source Control?

    With no Conversion to 8.0 there would be 2 errors and 3 warnings, but after Conversion, since it is seemingly an automatic program, whereas the files will not even load up in the IDE, there are 0 errors and 3 warnings, but the darn program does it all on its own, since the file version is 7.1 for the files, they will not even load up in the program first of all to change anything, without being --> Converted.

    Now for what happens with Visual C++ 2005 Express when loading up the .vcproj file for the game.

    It makes a new Project file which is 5kb bigger in size. Askes about Source Control Plug In, in which case I do not change and the difference between VS2003 and the 2005 Express program will be this:

    Welcome to the Visual Studio Conversion Wizard

    The solution or project you are opening was created in a previous version of Visual Studio. It must be converted to the format used by this version. After a solution or any of its projects has been converted, it can no longer be edited, built, or run in previous versions.

    If the solution or project is under source control, it will be checked out automatically during the conversion. Be sure the correct Source Control Plug In is active, and no files are exclusively checked out by other users. (may need Source Control Plug In from somewhere -- note by me, not by program as rest of it.)

    Click Next to proceed.

    Next screen:

    Do you want to create a backup before converting?
    No
    Yes, create a backup before converting
    Choosing this option will create a backup file next to each converted file.

    Warning:
    The source control provider associated with this solution could not be found. The projects will be treated as not under source control.

    Do you want to permanently remove the source control bindings from the projects?
    Yes
    No

    Duh, well NO! -- my comment and not the program.


    Time of Conversion: Thursday, May 11, 2006 16:38:34 PM
    Project: CvGameCoreDLL
    Filename Status Errors Warnings
    javascript:javascript:CvGameCoreDLL.vcproj Not Converted 2 3
    Conversion Issues - CvGameCoreDLL.vcproj:
    Visual C++ now supports a secure version of the C Runtime Library. Use of this library is turned on by default. You may see some warnings about deprecated functions when you build your project. It is advised that you correct these warnings, in order to make your code more secure.
    The C/C++ compiler default settings have been modified to be more compliant with ISO Standard C++. Included in those changes are enforcing Standard C++ for loop scoping and supporting wchar_t as a native type. These changes may cause existing code to no longer compile without changes to the code or the compiler options with which it is built.
    Due to a change in the exception handling switches for the C/C++ Compiler, /EHsc has been automatically converted to /EHa in this project.
    Project file successfully backed up as 'K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.vcproj.7.10.old'.
    The C/C++ compiler switch /Og has been deprecated and has been removed from your project settings. It is recommended that you use /O1 or /O2 instead.
    Due to the requirement that Visual C++ projects produce an embedded (by default) Windows SxS manifest, manifest files in the project are automatically excluded from building with the Manifest Tool. It is recommended that the dependency information contained in any manifest files be converted to "#pragma comment(linker,"")" in a header file that is included from your source code. If your project already embeds a manifest in the RT_MANIFEST resource section through a resource (.rc) file, the line will need to be commented out before the project will build correctly.
    Due to a conformance change in the C++ compiler, code change may be required before your project will build without errors. Previous versions of the C++ compiler allowed specification of member function pointers by member function name (e.g. MemberFunctionName). The C++ standard requires a fully qualified name with the use of the address-of operator (e.g. &ClassName::MemberFunctionName). If your project contains forms or controls used in the Windows Forms Designer, you may have to change code in InitializeComponent because the designer generated code used the non-conformant syntax in delegate construction (used in event handlers).
    Failed to upgrade project file 'K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.vcproj'. Please make sure the file exists and is not write-protected.
    Project upgrade failed.
    1 file Converted: 0
    Not converted 1 2 3

    Conversion Settings
    Solution File: K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.sln



    If the solution or project is under source control, it will be checked out automatically during the conversion. Be sure the correct Source Control Plug In is active, and no files are exclusively checked out by other users.

    Conversion type: In-place with side by side backup.


    Solution to be converted: CvGameCoreDLL
    Projects:
    CvGameCoreDLL

    All projects converted successfully with some warnings. Please see the conversion log for complete information.

    Time of Conversion: Thursday, May 11, 2006 16:46:29 PM
    Project: CvGameCoreDLL
    Filename Status Errors Warnings
    javascript:javascript:CvGameCoreDLL.vcproj Converted 0 3
    Conversion Issues - CvGameCoreDLL.vcproj:
    Visual C++ now supports a secure version of the C Runtime Library. Use of this library is turned on by default. You may see some warnings about deprecated functions when you build your project. It is advised that you correct these warnings, in order to make your code more secure.
    The C/C++ compiler default settings have been modified to be more compliant with ISO Standard C++. Included in those changes are enforcing Standard C++ for loop scoping and supporting wchar_t as a native type. These changes may cause existing code to no longer compile without changes to the code or the compiler options with which it is built.
    Due to a change in the exception handling switches for the C/C++ Compiler, /EHsc has been automatically converted to /EHa in this project.
    Project file successfully backed up as 'K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.vcproj.7.10.old'.
    Project upgraded successfully.
    The C/C++ compiler switch /Og has been deprecated and has been removed from your project settings. It is recommended that you use /O1 or /O2 instead.
    Due to the requirement that Visual C++ projects produce an embedded (by default) Windows SxS manifest, manifest files in the project are automatically excluded from building with the Manifest Tool. It is recommended that the dependency information contained in any manifest files be converted to "#pragma comment(linker,"")" in a header file that is included from your source code. If your project already embeds a manifest in the RT_MANIFEST resource section through a resource (.rc) file, the line will need to be commented out before the project will build correctly.
    Due to a conformance change in the C++ compiler, code change may be required before your project will build without errors. Previous versions of the C++ compiler allowed specification of member function pointers by member function name (e.g. MemberFunctionName). The C++ standard requires a fully qualified name with the use of the address-of operator (e.g. &ClassName::MemberFunctionName). If your project contains forms or controls used in the Windows Forms Designer, you may have to change code in InitializeComponent because the designer generated code used the non-conformant syntax in delegate construction (used in event handlers).
    1 file Converted: 1
    Not converted 0 0 3

    Conversion Settings
    Solution File: K:\Sid Meier's Civilization 4\SDK\CvGameCoreDLL_v161\CvGameCoreDLL\CvGameCoreD LL.sln
    Log Number: 2

    -----------------------------
    Back to just using the Toolkit for VS 2003, and the Source Control Plug In, I do not know about, but since that metafile is there included with the project I just leave well alone.

    Unless someone knows a lot about the differences, I guess Visual C++ 2005 Express I am not going to mess around with, to change anything in the Civ IV Game, and the Toolkit will be the only way it seems to go with the game.

    Now maybe Visual Studio 2005 NET would be different, but somehow I doubt it. It surely with the Express Edition is going to Convert the files, and do that or else not even load them into the IDE to even look at.

    After looking at the Express Edition in which I changed what was included with the Toolkit and changed the Include Folder, and the Lib Folder, and the Bin Folder using the Toolkits' folders for Visual C++ 2005 Express, the program did work, but it is only a Command Line -- compiler and linker, so again the program asked to Convert the files first, before it will even load them into the IDE. I changed it all back, and there are other things with all of that, that even the Full Version of Visual Studio.NET 2003 probably could not be used. XML files for Configuration files, different *.bat files for Express 2005, so although I do not know Visual Studio.NET 2003, I doubt in the end, anything from that program could be used with Visual Studio 2005, and all of it is changed around, so back to the 2003 Toolkit.

    It may be easier to convince Soren or Sid to use Codeblocks, and download the Watcom compiler and use that, so players can change the game, perhaps.

    Leave a comment:


  • Fromafar
    replied
    Originally posted by Raion
    According to someone else:

    quote:

    It is because VC++ 2005's compiler is incompatible with VC++ 2003's libraries, it seems that the exception handling is different.

    end quote.
    While true, I am not sure whether this would cause any problems. When the DLL and main program each handle their own exceptions and memory allocation/deallocation, it might still work.

    Something that has changed for sure is the generation (mangling) of function names. When you have "Treat wchar_t as Built-in Type" set to Yes (the default), the generated names of functions using wchar_t are different. If you want VC++ 2005 to generate the same names as VC++ 2003, you have to set this property (Configuration properties | C/C++ | Language) to No.

    Leave a comment:


  • padillah
    replied
    I can't believe that there's something in the source that binds the source to a specific version of the compiler/linker.

    How do we contact Firaxis and find out what is the big deal? There's got to be a way to compile this in VC 2005.

    I would feel a lot better if the process wasn't so delicate. I like code that compiles, I'm funny that way.

    Tom P.

    Leave a comment:


  • Raion
    replied
    According to what I have seen:

    No, Visual C++ 2005 Express will not work because of the compiler to make the game file DLL. It has to be the Visual Studio 2003 Toolkit with Codeblocks used for the IDE then, because the toolkit only contains a Command Line Compiler.

    I doubt if the compiler and linker and such can be moved to Visual C++ 2005 Express, because that program checks the Version Number of the file in question and immediately wants to upgrade it to Version 8.0 file. That with the compiler and linker supplied with the program makes it incompatible with the 2003 7.1 version of the file.

    So...................................back to Visual Studio 2003 Toolkit with Codeblocks IDE to work with CvGameCoreDLL.dll file.

    Leave a comment:


  • chrusion
    replied


    The Lib.obj!

    I knew it was something stupid!

    In Code::Blocks, when you click on Settings ->Compiler and open the Compiler_Settings window, there is a

    First Tab named Linker:
    Do NOT put:
    C:\Program... ...\lib
    in THIS Linker Tab!

    Go into:
    Tab named Directories
    There you will find a:

    Second Tab named Linker UNDER Tab named Directories
    PUT HERE:
    C:\Program... ...\lib
    C:\Program... ...\lib

    The first Linker Tab is for specific libraries you might want to link to if you don't want everything in a whole directory!
    Last edited by chrusion; May 11, 2006, 23:19.

    Leave a comment:

Working...
X