Что делать could not load library client
The abovementioned errors are quite nasty since most of the typical solutions like verifying game files, reinstalling the game, restarting Steam / PC simply don’t work. I had this error on one of my PCs for over a year, and only recently figured out how to solve it, since no solution that works is mentioned anywhere on the net.
The problem is that either Steam, or the game itself, for some unknown reason deletes the file Client.dll, either on loading the game, or when trying to join any multiplayer game, and then complains about it being missing.
Then, navigate to the following folder:
\steamapps\common\Left 4 Dead 2\left4dead2\bin
Copy the client.dll somewhere to keep it as a backup.
That is it, the game should load now, and you should be able to connect to multiplayer games without «Couldn’t CRC client side dll bin\client.dll» errors.
If you have some permission lists which you cannot edit, that means they are inherited.
To change them, first uncheck the box for «Include inheritable permissions from object’s parent», in the dialogue window that pops up after that select «Add».
After that, all permission lists for the file should be editable.
Comments
colistro123 commented Oct 6, 2014
I tried running this stand alone after compiling it in two different versions of Visual Studio (2010 and 2012) and it doesn’t even work «as is». I even re-installed the whole Source SDK Base 2013 Multiplayer and it’s still the same thing. We also tried to compile it on another computer and got the exact same issue. I’ve been using the Source SDK since the 2007 version and this pretty much hasn’t happened before. It was working on the Interglyph 2013 Source SDK Version by Tony Sergi, then we switched to this, and that’s it, it doesn’t work anymore. All we did was compile under 2010 (v100) and after that we moved the dll files to the bin folder. I did this about 12 times, even restarted my computer, no effect whatsoever. I checked the gameinfo.txt file, and I can assure you that’s fine since this didn’t happen before so it must be the solution itself generating a corrupt dll that cannot be recognized by the SDK.
«VPC
RAD_TELEMETRY_DISABLED
_HAS_ITERATOR_DEBUGGING=0
WIN32
_WIN32
_DEBUG
DEBUG
_WINDOWS
_USRDLL
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
_ALLOW_RUNTIME_LIBRARY_MISMATCH
_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
_ALLOW_MSC_VER_MISMATCH
%(PreprocessorDefinitions)
COMPILER_MSVC32
COMPILER_MSVC
_DLL_EXT=.dll
DLLNAME=client
BINK_VIDEO
AVI_VIDEO
WMV_VIDEO
DEV_BUILD
FRAME_POINTER_OMISSION_DISABLED
NO_STRING_T
CLIENT_DLL
VECTOR
VERSION_SAFE_STEAM_API_INTERFACES
PROTECTED_THINGS_ENABLE
strncpy=use_Q_strncpy_instead
_snprintf=use_Q_snprintf_instead
fopen=dont_use_fopen
HL2MP
HL2_CLIENT_DLL
_EXTERNAL_DLL_EXT=.dll
VPCGAMECAPS=HL2MP
PROJECTDIR=C:\Users\Ignacio\Desktop\source-sdk-2013-master\mp\src\game\client
SOURCE1=1
VPCGAME=hl2mp»
The text was updated successfully, but these errors were encountered:
Could not load library client.
10 Jan 2014 в 05:57
10 Jan 2014 в 05:57 #1
Вы уже поняли. У меня нет антивирусов. Да вообще, у меня в данный момент на компе Дота Скайп стим гугл хром. Винду снес в 03:00 по мск.
Из-за чего вылетает ошибка? Перезагружал, перезаходил в стим.
Что делать, кто может подсказать?
10 Jan 2014 в 06:00 #2
вот теперь я точно уверен, что данные приколюхи раздались вальвами на рандоме, что я могу сказать? тебе как и мне не повезло, как решить этот косяк пока не придумал
10 Jan 2014 в 06:01 #3
10 Jan 2014 в 06:02 #4
Я в стим перезашел, скачал патч для самого стима и все работает теперь.
10 Jan 2014 в 06:02 #5
насколько я понял проблема в каком то файле, у меня например перед запуском доты постоянно проскакивает мини обновление теперь, как решить блин
10 Jan 2014 в 06:02 #6
10 Jan 2014 в 06:03 #7
10 Jan 2014 в 06:03 #8
да, после кривой обновы
10 Jan 2014 в 06:03 #9
10 Jan 2014 в 06:03 #10
Я дак стим в настройках от беты отказался и все ок
10 Jan 2014 в 06:05 #11
у меня она и не была включена(
10 Jan 2014 в 06:05 #12
Сейчас попробую, только еще раз целостность кеша проверю 🙂
10 Jan 2014 в 06:05 #13
Устанавливить и/или обновить Visual C++ Redistributable.
10 Jan 2014 в 06:06 #14
10 Jan 2014 в 06:08 #15
10 Jan 2014 в 06:09 #16
100% проблема в том, что оно постоянно обновляет/не может обновить какой то файл, не спроста теперь перед каждым запуском доты мини обнова, знать бы что именно оно не может обновить, возможно помогло бы удаление файла, а так хз
10 Jan 2014 в 06:10 #17
у меня так же,хрен знает что делать.Пробовал все советы по этой ошибке,не помогают
10 Jan 2014 в 06:10 #18
10 Jan 2014 в 06:12 #19
тогда целостность кеша, в свойствах доты 2, проверь
10 Jan 2014 в 06:13 #20
Попробую удалить и установить. Позже напишу.
10 Jan 2014 в 06:13 #21
ты думаешь тут тупые сидят? уже 50 раз перезагружался комп/стим/кэши и прочее
could not load library client или говнообновление!
10 Jan 2014 в 05:23
10 Jan 2014 в 05:23 #1
10 Jan 2014 в 05:24 #2
обнова мольца кривая. щучу не мольца
10 Jan 2014 в 05:25 #3
у многих такое. думаю сейчас будет ещё обновление и все решится само собой)
10 Jan 2014 в 05:25 #4
перезагрузить комп?у меня все в порядке
10 Jan 2014 в 05:25 #5
ничего не кривая, скачалось и клиент работает отлично.
10 Jan 2014 в 05:25 #6
10 Jan 2014 в 05:26 #7
10 Jan 2014 в 05:27 #8
за себя говори, стоит чистая вин7 лицуха, антивирусов 0, софта стороннего 0, после обновы could not load steam library client.
и после этого ты дальше будешь утверждать что у всех с кем приключились траблы после обновы стоит пиратский софт?
10 Jan 2014 в 05:29 #9
тоже такую же херню выдает хз че делать
10 Jan 2014 в 05:31 #10
10 Jan 2014 в 05:31 #11
10 Jan 2014 в 05:33 #12
Все работает, не знаю что у вас
10 Jan 2014 в 05:33 #13
10 Jan 2014 в 05:38 #14
чел, не беси, тут такая трабла у многих, я не думаю, что стим решил в обнове вирус подарить)
10 Jan 2014 в 05:39 #15
Это троян. Гейб хочет наши аккаунты.
10 Jan 2014 в 05:41 #16
у меня аваст на файлик ругался.
10 Jan 2014 в 07:12 #17
У меня тоже самое. Аваст на обновление доты ругается.
А после обновления комп сильно виснет и всё лагает.
10 Jan 2014 в 07:16 #18
вот это установи и все оке будет
http://www.microsoft.com/ru-ru/download/confirmation.aspx?id=5555
просто папку стим добавил в доверенные файлы
10 Jan 2014 в 08:05 #19
Добавил файл на который ругался аваст в исключение. Дота запустилась но с сообщением что клиент игры устарел.
Из друзей почему не видно ни одного друга ни в доте, ни в сети в стиме, что очень странно.
Хотя может они все пошли спать смирясь с тем что дота наеблнулась.
10 Jan 2014 в 08:07 #20
пол ночи парил мозги всякими проверками целосности кеша, стимсервисами. оказалось что такое не только у меня)))) буду ждать новое обновление где это исправят)))
10 Jan 2014 в 08:10 #21
10 Jan 2014 в 08:12 #22
ну вот только что катку затащил, почему ты мне не веришь?
Comments
ghost commented Apr 21, 2015
I am seeing some weird behaviour with my mod. Hopefully someone has ideas..
If I replace my client.dll with an older version that was released in 2006, it has the same error.
If I rename client.dll so there isn’t a client.dll present, the game reaches the splash screen without error.
If I unzip my mod on a system that has previously installed an older version of the mod (using the installshield exe provided), the new DLLs work. I still don’t know what the difference is to cause this, so I’m trying to just look at the problem ignoring this..
There are lots of google results for this, but they are for source mods and pre-steam versions of half-life. Any suggestions?
The text was updated successfully, but these errors were encountered:
tschumann commented Apr 21, 2015
ghost commented Apr 21, 2015
The new liblist has a different version key and adds the ‘edicts’ key to prevent an awful crash.
I tried using the old liblist as well, with no luck.
tschumann commented Apr 22, 2015
ghost commented Apr 22, 2015
I have wondered if it’s something in the way I build. Definitely tried both debug/release profiles, no luck there..
The weird thing is my DLLs can work (but only if you have run the installshield exe from 2006 to set up the old version). If I just paste in the DLLs from the old installer (without running it), I get the same error. I guess I need to see what the installer does (other than paste files) because it seems important? Hrmmm.
tschumann commented Apr 23, 2015
ghost commented Apr 23, 2015
I’ve been experimenting some more..
If I paste the new version over the old one on a Windows XP virtual machine, it doesn’t work. Nothing seems to make my new binaries work on XP (and it seems like the installer isn’t related, thank god!). They work on Windows 7..
It feels like this is something about my binaries/build process, as you were thinking. Can’t quite place it yet but I’ll keep looking..
ghost commented Apr 23, 2015
And actually, without looking at symbol tables and stuff directly, you’re on to something.
-Only with the new binaries- I get these errors in the console:
Can’t find address: 647f385a
Can’t find address: 647f12d0
Can’t find address: 647f385a
Can’t find address: 647f12d0
.
Must be something we aren’t exporting, that the old ones are. Maybe it can’t run without these functions on XP but it can on W7? Something like that?
ghost commented Apr 23, 2015
More on the same point:
If I build with the source code from 2006 and my current build process, I get the exact same behaviour (missing functions on W7, startup crash on XP). So it’s down to the build process now.
Are there guidelines somewhere about this so I don’t have to just go and use some random visual studio version and project file?
tschumann commented Apr 24, 2015
dtugend commented May 3, 2015
I don’t know about the can’t find address errors, maybe you are having two different problems.
Please don’t be angry if that idea is wrong 🙂
If it was right, then please check your other project settings against these, to avoid other problems.
ghost commented May 3, 2015
Yeah, I have that setting. Checking against that project file is still on my ‘to do’ list. hopefully I get to it soon and update this :>
dtugend commented May 3, 2015
Oh 🙁
Are you using any other DLL files in your client.dll that might depend on some CRT DLL files? (I recall some mods did that).
dtugend commented May 3, 2015
Also did you try Debugging the game with WinDbg or s.th. else already? Any useful output from that?
dtugend commented May 3, 2015
Btw the «Can’t find address: %08lx\n» text comes from the enginefuncs_t’s pfnNameForFunction, which is used in your server DLL (not the client.dll one) through the NAME_FOR_FUNCTION macro. Enabling debug build _(DEBUG macro should be definied then) should print more helpful info about which exports are missing usually.
dtugend commented May 3, 2015
Also what is your Build Environment?
Edit: I’d recommend the Visual Studio 2010 build set (v100), except if you want to use newer C++ 11 features.
ghost commented May 4, 2015
Ooh, lots of awesome ideas. Thanks very much! I’ll try these shortly.
JoelTroch commented May 4, 2015
I highly recommend the usage of WinDbg as debugger for HL1 mods, when I was implementing the custom audio engine using FMOD Studio for ARRANGEMENT I had some memory leaks which VS2013’s debugger wasn’t helpful but WinDbg was.
tschumann commented Jun 2, 2015
Did you ever work it out?
ghost commented Jun 2, 2015
Nope! Planning to work on it again soon.
ghost commented Jun 7, 2015
I just tried patching visual studio with the link from ripieces. The binaries made with that magically seem to work! (without any setup after patching VS)
So I guess that’s good! Maybe I’ll learn the details later but this is great for now. Thanks, folks!
dtugend commented Jun 7, 2015
While that is great to hear, that could mean we will run into a lot of problems if we update the compiler version to 2012 or newer 🙁
Are you sure those «Can’t find address: %08lx\n» for debug builds are gone too? I would have thought those problems were unrelated.
JoelTroch commented Jun 7, 2015
@ripieces For our mod ARRANGEMENT, we use VS2013 compilers (v120) and we’ve got the same behaviour as if we were using VS2010 compilers (v100). XP compilers work too but they don’t make much difference, so theorically, VS2012 compilers (I presume v110) should also work.
However, I tried to use VS2015 compilers (v140) on my Windows 10 VM and they fail compiling the source code.
ghost commented Jun 7, 2015
The ‘can’t find address’ stuff still happens, yeah.
Not sure about VS versions and stuff. it would be good to separate the build process from VS and just have some clear directions about a makefile and toolchain..
dtugend commented Jun 7, 2015
As said here you can enable _DEBUG build to find the functions that miss the CBASE_DLLEXPORT / EXPORT macro.
malortie commented Jun 9, 2015
I managed to compile Half-Life’s source code in Visual Studio 2015 RC (community edition).
You can find it here. Deprecation warnings have been removed, so the code should proficiently build. It works for all projects with dmc, hl, ricochet.
I might attempt to fix utilities (utils.sln) and get them to build properly. In the case of mdlviewer, this could be replaced by Chumbalum Soft’s version.
ghost commented Jun 22, 2015
I’m actually still looking at this because using the vs2012 patch didn’t help (not sure why I thought it did. )
@malortie : Have you tested if your half life client DLL works on Windows XP?
So..what needs to be true about my client.dll for hl to load it? That’s probably what I really need to know (VS versions and so on don’t seem to be a direct cause).
dtugend commented Jun 22, 2015
You should really consider using WinDbg. It can even load symbols (.pdb) and source files, if you point it to the right directories (make sure to tick reload checkbox in case you are already attached to the process when setting them).
Are you sure you set v100 for both Release and Debug builds? Maybe you switched between release and debug and it’s not set? (S.th. like that happened to me once.)
Also I suppose you are using a Release build for Windows XP, because debug builds usually only work in own environment where the Visual Studio is installed (because of missing DLLs)?
Edit: forget about that previous paragraph, since you / Half-life are compiling static libraries, meaning Debug should work too.
JoelTroch commented Jun 22, 2015
@ripieces: Debug builds should always work for people who don’t have Visual Studio or any C/C++ related development/debugging stuff installed.
@johnstt: I recently had the Can’t find address problem in my mod and I managed to fix it, please note that this solution may not work for you as your problem is related with the client DLL. But I’ll share my solution anyways because you may find it useful and others modders may came accross the same problem.
Here’s the context: I’m making a CTF (Capture The Flag) game mode for my mod, so I need to code 2 entities, the flag itself and the capture zone.
And now straight to the point, aka the Can’t find address problem, how can it happen and how to fix it, take a look at this code which I simplified a lot so you can understand:
After 20 minutes of raging, tweaking something here, tweaking some there, I realize by looking 10 times at others entities within the same file ( triggers.cpp ), that all EXPORT had unique names, so I changed a little bit my code so it look like this:
I had no more Can’t find address and got my CCTFFlag::CTFFlagThink spam, also touches were detected, in other words: everything worked like a charm. Hope this little «story» will be useful to you or any other modder which has the same problem.
dtugend commented Jun 22, 2015
@JoelTroch thank you for the info about the function names having to be unique in the whole class hierarchy.
I think the reason for that is the pointer casting trickery here:
However at the moment I am thinking that the Can’t find address problems were completely unrelated to that!
I am not even sure if the EXPORT is required on those Think and Touch function, but honestly I don’t know right now. (I know Valve did it like that almost everywhere, but cannot find a reason for that right now.)
dtugend commented Jun 22, 2015
I am stupid, sorry. The EXPORT macro is required, at least for the Debug builds, I am not sure though under which conditions the engine will call in there.
Sorry for my lack of knowledge 🙁
malortie commented Jun 23, 2015
Despite the fact that the following message is not related to client.dll loading, but since it concerns most users struggling with VS versions or still are using ulterior versions such as VS2010, I believe it would be better to let as many people be aware of the following:
As promised, I managed to fix source code related issues related to warnings/deprecate, except for CRT functions, as using CRT recommended functions would require certain tweaks in various files, such as extra arguments. In addition to this, the fix prevents typical warnings such as precision loss, unreferenced variables, already defined macros, and other warning seen in the current master branch from being triggered.
In short, no more required warning suppression to prevent compiler from generating warnings such as:
To solve this, I created two files: warning.h;vstdlib.h in public/vstdlib. warning.h is to help setup preprocessors to enable or disable the fix, while vstdlib.h includes macros to make future POSIX transitions easier.
If you look into the current source engine build, you will notice Valve uses macros such as Q_strncpy, Q_memset, which are all defined in a particular file, which associates macros to C standard functions based on OS, build configuration.
The same procedure was applied here. I had to go through every C standard library functions call in both projects.sln and utils.sln and replace them with Q_* alternatives, which are associated
in public/vstdlib/vstdlib.h.
I also promised to give you a working solution for Visual Studio 2010.
Note: I deleted my old branches (Do not worry, I made backups) to clean all the monolithic pull requests I’v made.
Before attempting to do other pull requests, I encourage you to take a look at the current one, which contains all fixes specified above.
Please, let me know what you think. I am always forward to improve my work as well as commit skills and I cannot think of better people than you to help point me in the right direction.








