Installing and using the SDK

@Thunderbrd - well, now you lost me.
I don't understand what you don't understand, or what kind of information you need and can't find.

I tried giving you an overview of the components (I admit it lacked in details, but I didn't want to write too much), but apparently you need something more.

Try asking specific questions.
 
Ok, from what I can tell then, you're right and this file should work instead then. I'm still a bit confused as to why this is necessary but I'll keep reading ;)

Well, that also doesn't work, I can't install it. First, it stopped after, I guess, it had completed a sixth of the install bar, and after waiting something like 10 minutes, I closed it. It couldn't be closed though, it needed to do something, so I waited for it to do whatever it wanted to, but after 5 minutes with again no progress, I used Ctrl Alt Delete to close it. Now, however, I can't even launch the installation process, because the Windows installer is installing something else, or whatever it sayed. Restarting the computer solves nothing, and it sure isn't installing anything else. It also isn't sneakily working on the background, as far as I can see with the task manager.
 
@Thunderbrd - well, now you lost me.
I don't understand what you don't understand, or what kind of information you need and can't find.

I tried giving you an overview of the components (I admit it lacked in details, but I didn't want to write too much), but apparently you need something more.

Try asking specific questions.

My last comments weren't really aimed at you. And yeah, I may have some questions but I'll wait til' I've done this a couple times before asking them.



I had an easy time downloading that file the first time around but I'm having a bit of similar trouble now. It seems that once you've tried to use that file once, it doesn't like you trying to use it again so it takes redownloading... hmph. I'll have more advice on the subject later.
 
From my brief experience there, compiling did not take long really. Would get faster with practice. And the Python coding is nearly identical in theory if not in structure to C++ and the C++ gives more functionality and faster processing. From what I can tell, the Python is sort of a sluggish gap fill portion of the overall picture, a place where quick edits that can't be done in the XML can be made, but with some limited scope. Your understanding of Python would largely spread to the coding process in C++.
I agree, but just looking at the SDK makes me think that it would be no fun to edit it. :p I guess it would be worth the effort nonetheless. But I do mod and code for fun.

Yeah, it drives me nuts to just do things without understanding why I'm doing it or how slight adjustments to what I'm doing would impact the final result. Makes me feel I'm missing the point somehow.
Yeah, I can totally sympathize. But in this case I would be soo happy if I could just hit a button and the whole thing would sort itself out. (Especially since its not supposed to be a process where you need to set any parameters differently every time or make any other considerations. Just repeat the same steps as last time, and hope that you haven't forgotten how to jump through some of those hoops.)

I wouldn't even mind all the waiting for the end result. So I don't really feel the need to understand any of it, because, well, its technical. I'm that way about the car, also. :lol:
 
Well, that also doesn't work, I can't install it. First, it stopped after, I guess, it had completed a sixth of the install bar, and after waiting something like 10 minutes, I closed it. It couldn't be closed though, it needed to do something, so I waited for it to do whatever it wanted to, but after 5 minutes with again no progress, I used Ctrl Alt Delete to close it. Now, however, I can't even launch the installation process, because the Windows installer is installing something else, or whatever it sayed. Restarting the computer solves nothing, and it sure isn't installing anything else. It also isn't sneakily working on the background, as far as I can see with the task manager.

Having a bit of trouble with this too... It seems to download every so often and I'm wondering if its my hazy internet connection causing trouble. So far, after many attempts, the best result I've had so far was to remove the program entirely and start again. But I'm reluctant to do that again since I seem to have a good amount of the program elements fully in place already and it really takes a heck of a long time to download.

The first time I downloaded this (and it seemed to be successful at the time) I had 2010 express installed... I wonder if that simplified it somehow. Anyhow, if you have trouble trying to run the installer again, it seems to be because the installer does these intermittent downloads throughout the process and will check to see if it is a 'signed' file, a status which seems to only work the first time you try to use the file so it needs redownloaded on every attempt.

I'm thinking of trying the ISO version if this doesn't work out too well and we'll see if that works any better. Might be a longer download but the thing really needs to download EVERYTHING and then have a go at installing I think.
 
Well, it seems that somehow, today, without doing anything new other than double clicking on the .exe yet again, it actually could remove itself and then install itself... But how can I merge the CvGameCoreDLL.dll's of RevDCM and that of the BonusCommerceModifiers mod (which I found in this topic (http://forums.civfanatics.com/showthread.php?t=405005))?

EDIT: Copied from another thread:

Well, I've tried everything, but still, the compiling doesn't work. Here's what I do and have, exactly:

I have created a MyMod folder in BTS, in it are the files:

CvGameCoreDLL.ncb
CvGameCoreDLL.sln
CvGameCoreDLL.vcproj
What seems to be a backup presumely caused by a failed compilation, CvGameCoreDLL.vcproj.*the computer's / user's name*
a .7z file that I downloaded from your guide
depends
Makefile
MakefileORG (the one where I hadn't changed the path locations, thus, the original, hence the ORG)
sources.mk

And any other files from your guide which I needed, including the map CvGameCoreDLL if I remember correctly. Your guide said something about opening a file inside that map, if I remember correctly, although I hadn't put that file in that map, but instead, just in the MyMod folder. I tried both ways anyway. Both, however, gave an error, it couldn't find a location, the path was wrong, something like that.

Then, experimenting, I also put in the BTS folders, and overwrote those with the RevDCM folders (which I already had merged with that BonusCommerceModifiers mod). Yet, still, a path was wrong, it gave the same error. As was to be expected.

1>------ Build started: Project: CvGameCoreDLL, Configuration: Release Win32 ------
1>Performing Makefile project actions
1>Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Het bestand is niet gevonden
1>Het bestand is niet gevonden
1> "C:\Program Files (x86)\Microsoft Visual Studio 9.0\bin\cl.exe" /nologo /MD /O2 /Oy /Oi /G7 /DNDEBUG /DFINAL_RELEASE /Fp"Release\CvGameCoreDLL.pch" /GR /Gy /W3 /EHsc /Gd /Gm- /DWIN32 /D_WINDOWS /D_USRDLL /DCVGAMECOREDLL_EXPORTS /Yu"CvGameCoreDLL.h" /IBoost-1.32.0/include /IPython24/include /I"C:\Program Files (x86)\Microsoft Visual Studio 9.0/include" /I"C:\Program Files (x86)\WindowsSDK/Include" /I"C:\Program Files (x86)\WindowsSDK/Include/mfc" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Boost-1.32.0/include" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Python24/include" /YcCvGameCoreDLL.h /Fo"Release\_precompile.obj" /c _precompile.cpp
1>C:\Program wordt niet herkend als een interne
1>of externe opdracht, programma of batchbestand.
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\bin\cl.exe' : return code '0x1'
1>Stop.
1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
1>Build log was saved at "file://c:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\MyMod\Release\BuildLog.htm"
1>CvGameCoreDLL - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Well, that's the error. I'm guessing I'm doing something stupid, but I can't figure out what...
 
Not sure if we're allowed to still post here, but:

I followed the instructions in the first thread to the 'T'. Well, not really, obviously, otherwise it would've worked - I'm just an incredible . Upon clicking 'Build' I got the following:

Spoiler :
||=== Build: Final Release Win32 in CvGameCoreDLL (compiler: Microsoft Visual C++ Toolkit 2003) ===|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\_precompile.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvArea.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvArtFileMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvCity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvCityAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDeal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDiploParameters.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLButtonPopup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLEntity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLPython.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDllPythonEvents.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDllTranslator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLWidgetData.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvEventReporter.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvFractal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGame.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameCoreDLL.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameCoreUtils.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameTextMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGlobals.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvHallOfFameInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInfos.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInfoWater.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInitCore.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMap.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMapGenerator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMessageControl.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMessageData.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlayer.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlayerAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlot.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlotGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPopupInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPopupReturn.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvRandom.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvReplayInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvReplayMessage.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvSelectionGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvSelectionGroupAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvStatistics.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvStructs.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTalkingHeadMessage.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTeam.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTeamAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvUnit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvUnitAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtility.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilityGet.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilityInit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilitySet.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArea.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyAreaInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArgsList.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArtFileMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArtFileMgrInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyCity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyCityInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyDeal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyEnumsInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGame.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameCoreUtils.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameCoreUtilsInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameTextMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameTextMgrInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContext.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface3.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface4.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyHallOfFameInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyHallOfFameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface3.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMap.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapGenerator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapGeneratorInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMessageControl.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMessageControlInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayer.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayerInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayerInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlot.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlotInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyRandomInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyReplayInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CySelectionGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CySelectionGroupInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyStructsInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyTeam.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyTeamInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyUnit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyUnitInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\FAssert.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\FDialogTemplate.cpp|
LINK||fatal error LNK1181: cannot open input file 'boost_python-vc71-mt-1_32.lib'|
||=== Build failed: 1 error(s), 99 warning(s) (0 minute(s), 2 second(s)) ===|


Any advice?
 
Change the "Build target" drop-down to Final Release

where do I click this. The left side? or in a setting?
 
Yeah ! I finally was able to compile under Linux, thanks to your solution !

After the whole day trying to install visual studio under wine, with nothing even close to a result, I finally decided to give a try on this supposed outdated solution, that came out to be perfectly viable :) Made my first vanilla bts compile yesterday, and my first few modifications are compiling smoothly as I'm writing that. We maybe want to add a note somewhere for those who run civ4 under linux and want to try modding ? The article on the wiki is protected so I can't do it myself ...
 
Yeah ! I finally was able to compile under Linux
I planned on trying to do that, but haven't got around it to yet. Great work and please do write about it somewhere where I can read it and possibly link to it :)

Next question is if you can debug in wine. As important as debugging can be, the ability to compile even without debug support is a major milestone.

The article on the wiki is protected so I can't do it myself ...
I have no idea how to update Modiki. If I did, I would do something like link to an updated makefile
 
Last edited:
Yeah it has been quite a victory to get it running ^^ If you are interested, I'm under wine 1.7.9, winetricked d3dx9, devenum, msvcr100, msxml3, and quartz (not sure if any of these is needed, just added everything that could be usefull :p). All went smoothly except the sdk which didn't finished the install properly, but the files were correctly copied so no harm done.

Yep, maybe the debug mode is not working properly (actually I didn't try it myself), but it gives you the errors when compiling. So for small changes in the code, it's more than enough.

For the wiki, yep it would be nice to have some access to it in any way ^^
 
I used Codeblocks 17.12 and VC++ Toolkit 2003, but the compiler fails to build the project, with error C1034: windows.h: no include path set.
 
I am encountering tons of errors. Since they are all fatal errors, I can only fix the errors one by one. And there would be hundreds of them! :mad:
 
Sounds similar enough to the issue discussed here (missing sal.h):
https://forums.civfanatics.com/thre...compile-a-new-dll.608137/page-5#post-15981583

So a different version of the Windows SDK should include that file and perhaps others that you are missing. That being said, I've been using both versions 6.0 and 7.0A of the Windows SDK without problems in the past with Visual Studio. My understanding is that Visual Studio will look in its own folders (e.g. VC\include) for libraries not found in the MSVC toolkit and Windows SDK. Maybe you can get it to work by installing VS2010 (or a similarly old version) alongside the IDE that you want to use (like in this thread about VS2019); maybe an older Codeblocks version (from the WinXP era) would also do.
 
Not to shill my own thread, but have you tried this guide? It includes all you need and has been well tested and successfully used by many people. Unless you specifically want to keep using CodeBlocks, it's probably the most painless way to set up your compiler.
 
Top Bottom