Visual studio can't find any standard c++ library file - c++

I had vs2010 ultimate then I downloaded 2012 RC. It was working well at the beginning then at some point .net framework get messed up so I uninstalled both 2012 and 2010 (maybe I have manually deleted some folders too). Now I re-Installed vs2010 ultimate and the problem is none of the standard library files exist I figured so as I can't include any of them.
Any help how to fix that?

That's a known problem with uninstaller of VS2012 RC/Beta. It will deregister the platform SDK, delete the folder, and even worse - would make changes for all previous VS versions. I am not sure what registry settings it changes (Around $(VCInstallDir)) - but it breaks it.
Only option is to find the relevant header, library and executable files, copy the path, and add it to your VC2010 (and previous, if any). You do it by VC++ Directories in Tools->Options, but that's not available for VC2010! So, you better specify the path in your project itself.
Tall order, I know, but it is like that - or you just re-install your OS. There is some "complete VS uninstallation" tool, but I couldn't find it now.

Related

Missing .dll in different Visual Studio versions

I recently came up with an issue. I had a project created on visual studio 2015, using allegro5 library which executed on Debug and Release mode correctly.
When I changed visual studio versions though and started using 2019 version (In the mean time I had to format my PC and re-installed only VS19) and loaded the project, the execution had a missing msvc110d.dll error shown up.
I tried to find a way in order for my project to be "upgraded" and instead of looking into the old version of msvc to try and look up the newer version, but couldn't find anything.
So is there a way for me to change some settings in order for my project to expect newer versions of msvc, or do I have to create a new project and copy paste all the configurations and files/assets inside that new project?
Thank you all
P.S I know that the error can be resolved If I get the .dll file inside that directory, but that is bad practice for sure. Also could you give me a tip on how to setup a project correctly in order to prevent those kind of issues in the future?
I think you need to find the VS2015 redistributable on Google and install it on your machine. That should solve it.
Windows dynamic library files are installed under c:\windows\system32 directory. A 32 bit dll file in a 64 bit windows can be found under c:\windows\syswow64. When your VC++ developed application searches for the dll it first checks in the application folder and then the system folder. If it is not found in these locations, a "missing dll file" error will be shown.
Normally, installing the right VC++ redistributable does the trick. But at times the mismatch persist as the sdk you're using is not in conformity with the system dll. You shouldn't replace the existing dll in the system directory manually with a downloaded( download only from www.microsoft.com) one as other installed software may also failed in the process.
In such worse case scenario, you can however directly copy the downloaded dll files in your application folder itself and distribute along your software so that it runs on a remote host too. Normally these compatible dll files, for both debug and release versions, are also available in your VC++ sdk directory which can be copied for a perfect match.

GCC suddenly stopped working? Missing dependencies? [duplicate]

I have a problem with our executable. I'm running this C++ 32-bit executable on my Windows 7 64-bit development box that also has all those Microsoft applications (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office)...
And it's still running just fine.
Now I got the client installation of the very same program and was asked to test it with a clean Windows 7 installation. Thus I got one Windows 7 64-bit VMware and updated it to Windows 7 SP 1 (the very same version my developer box is tuning).
But while on my developer box everything is fine the program does not work with the VMware (30 days trial) box.
The x86 Dependency Walker is telling me that the following DLL files are missing:
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
DCOMP.DLL
GPSVC.DLL
IESHIMS.DLL
I googled for those API-MS-WIN-... DLL files and found they should actually already be part of Windows 7 (some sites claiming the belong to Windows 8 and Windows Server 2012 though).
I already tried the suggested fixes I found, which are:
running 'sfc /scannow'
installing Visual Studio 2008 SP1 runtime executables
But that didn't solve anything. :-(
Side note: My development box does not have them either, and does not seem to need them. For example, the user32.dll on my box does not link against one of those, while the installation on the VMware does.
Any idea on how to fix this issue?
I tried to find a suitable download / fix on the Microsoft pages, but I failed.
After solving my issue I wanted to report what I found out, and I can't post this as an answer because the question has been closed.
Actually all the DLL files reported missing by the Dependency Walker tool, namely those
* API-MS-WIN-CORE-...
type DLL files were not part of the actual problem.
In my case the registration of three OCX files was missing and after that everything was just fine, BUT Dependency Walker tool still listed all the very same DLL files as before even when the program was just running fine now.
The gist of it: As someone elsewhere stated, the tool is a bit dated by now and does not always work properly with a newer OS. Thus keep an eye open and don't get mislead by missing 'API-MS-WIN-CORE-COM-L1-1-0.DLL', ... the problem probably lies entirely elsewhere.
This problem is related to missing the Visual Studio "redistributable package." It is not obvious which one is missing based on the dependency walk, but I would try the one that corresponds with your compiler version first and see if things run properly:
Visual Studio 2015
Visual Studio 2013
Visual Studio 2010
Visual Studio 2008
I ran into this problem because I am using the Visual Studio compilers, but not the full Visual Studio environment.
Going to dare to inject a new link here: The latest supported Visual C++ downloads. Stein Åsmul, 29.11.2018.
I just resolved the same problem with C++ Qt 5 and Windows 7 64 bits with MSCVC 2012.
In the beginning I thought it was a MSVC/Windows DLL file problem, but as BorisP said, the problem was in my project dependencies. The key is "How to know your project dependencies in Qt 5?".
As I didn't find any clear way to know it (Dependency Walker didn't help me a lot...), I followed next the "inverse procedure" that takes no more than 5 minutes and avoid a lot of headaches with DLL file dependencies:
Compile your project and take the executable file to an empty folder: myproject.exe
Try to execute it, It will retrieve an error (missing DLL files...).
Now, copy all the DLL files from Qt (in my case they were in C:\Qt\Qt5.1.1\5.1.1\msvc2012_64_opengl\bin) to this folder.
Try to execute again, it will probably works fine.
Start to delete progressively and try every time your executable still works, trying to leave the minimum necessary DLL files.
When you have all the DLL files in the same folder it is easier to find which of them are not valid (XML, WebKit, ... whatever..), and consequently this method doesn't take more than five minutes.
I just resolved the same problem.
Dependency Walker is misleading in this case and caused me to lose time. So, the list of "missing" DLL files from the first post is not helpful, and you can probably ignore it.
The solution is to find which references your project is calling and check if they are really installed on the server.
#Ben Brammer, it is not important which three .ocx files are missing, because they are missing only for Leo T Abraham's project. Your project probably calls other DLL files.
In my case, it was not three .ocx files, but missing MySQL connector DLL file. After installing of MySQL Connector for .NET on server, the problem disappeared.
So, in short, the solution is: check if all your project references are there.
As mentioned, DCOMP is part of the VC++ redistributables (implementing the OpenMP runtime) and is the only truly missing component. All the rest are false reports.
Specifically API-MS-WIN-XXXX.DLL are API-sets - essentially, an extra level of call indirection introduced gradually since Windows 7. Dependency Walker development seemingly halted long before that, and it can't handle API sets properly.
So there is nothing to worry about there. You're not missing anything more.
A better alternative to find the truly needed DLL files that are missing (if that is indeed the problem) is to run Process Monitor and step backwards from the failure, searching for sequences of failed probes for a specific DLL file in all the system path.
I also ran into this problem, but the solution that seems to be a common thread here, and I saw elsewhere on the web, is "[re]install the redistributable package". However, for me that does not work, as the problem arose when running the installer for our product (which installs the redistributable package) to test our shiny new Visual Studio 2015 builds.
The issue came up because the DLL files listed are not located in the Visual Studio install path (for example, C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist) and thus had not been added to the install. These api-ms-win-* dlls get installed to a Windows 10 SDK install path as part of the Visual Studio 2015 install (e.g. C:\Program Files (x86)\Windows Kits\10\Redist).
Installing on Windows 10 worked fine, but installing on Windows 7 required adding these DLL files to our product install. For more information, see Update for Universal C Runtime in Windows which describes the addition of these dependencies caused by Visual Studio 2015 and provides downloads for various Windows platforms; also see Introducing the Universal CRT which describes the redesign of the CRT libraries. Of particular interest is item 6 under the section titled Distributing Software that uses the Universal CRT:
Updated September 11, 2015: App-local deployment of the Universal CRT is supported. To obtain the binaries for app-local deployment, install the Windows Software Development Kit (SDK) for Windows 10. The binaries will be installed to C:\Program Files (x86)\Windows Kits\10\Redist\ucrt. You will need to copy all of the DLLs with your app (note that the set of DLL files are necessary is different on different versions of Windows, so you must include all of the DLL files in order for your program to run on all supported versions of Windows).
This contribution does not really answer the initial question, but taking into account the hit-rate of this thread I assume that there are quite a few people dealing with the problem that API-MS-WIN-CORE- libraries cannot be found.
I was able to solve a problem where my application refused to start with the error message that API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL is not found by simply updating Visual Studio.
I don't think that my build environment (Windows 7 Pro SP1, Visual Studio Ultimate 2012) was messed up completely, it worked fine for most of my projects. But under some very specific circumstances I got the error message (see below).
After updating Visual Studio 11 from the initial CD-Version (I forgot to look up the version number) to version 11.0.61030.00 Update 4 also the broken project was running again.
This solved the issue for me:
Uninstall the Visual Studio 2010 redistributable package if you have it installed already, and then install Microsoft Windows 7 SDK.
I solved the problem. When I registered the OCX files, I ran it with the Command Window that had been executed as an administrator.
For anybody who came here, but with a Photoshop problem: my solution was to uninstall the MS VC++ redistributable first x86 and 64 both. Then install one appropriate to the Windows version and architecture (86 or 64).
Installation of SQL Server Management Studio 2014 on a freshly installed Windows 7 resolved this problem at our client after a two-day ridiculous battle.
I came here with this problem occurring, after trying a fresh Windows 7 OEM install, upgrading to Windows 10.
After some searching of Microsoft forums and such I found the following solution which worked for me:
Replace C:\Windows10Upgrade\wimgapi.dll with the one from C:\Windows\System32\wimgapi.dll
I suggest also checking how much memory is currently being used.
It turns out that the inability to find these DLL files was the first symptom exhibited when trying to run a program (either run or debug) in Visual Studio.
After over a half hour with much head scratching, searching the web, running Process Monitor, and Task Manager, and depends, a completely different program that had been running since the beginning of time reported that "memory is low; try stopping some programs" or some such. After killing Firefox, Thunderbird, Process Monitor, and depends, everything worked again.
I had the same problem. After spending hours searching on the web, I found a solution for me.
I copied the file combase.dll file (C:\Windows\System32) to the release folder, and it resolved the problem.
Just to confirm answers here, my resolution was to copy the DLL that was not loading AND the ocx file that accompanied it to the system32 folder, that resolved my issue.

how to recompile a .lib in Visual Studio 2013

I have a project that uses Effects11.lib and Effects11d.lib but when I build my project I get a bunch of "error LNK2038: mismatch detected for '__MSC_VER':value '1600' doesn't match value '1800'". And from what I have found, this is saying that the .lib was built for a different version of VS than what I am using and I need to recompile them. Issue is I am not sure how to do this. Never had to recompile a lib before.
Looking through the authors site for this book # http://www.d3dcoder.net/d3d11.htm, it looks like the Effects11.lib is Ms-Pl licensed source code.
http://msdn.microsoft.com/en-us/library/windows/desktop/ff728664(v=vs.85).aspx
which then links to
https://fx11.codeplex.com/
which has a download for the source of that library at
https://fx11.codeplex.com/releases/view/150822
which seems to have project files which are buildable with VS2013 which you are using so you should be able to build effects.lib for vs2013 and continue with your development.
Alternative you could contact the author himself from his webpage and see if he can do this for you and link to it as its likely you're not the only one hitting this issue?
To recompile a .lib file, you first have to have the source code. You then open the vcproject of the library project, and then you change your settings and then you can recompile. I also found on the web that for some types of c++ in order to get it to recompile, you will have to delete the .o file generated in the library's directory. But, I do not know if that applies to your compiler. I hope this answers your question.
Those static libraries are built with VS 2010, but you are using VS 2013. The link error is telling you that.
The fix in this case is to visit the Effects 11 site on CodePlex and then build a fresh copy of the Effects 11 with your VS 2013 compiler. Alternatively, you can use the NuGet package fx11_desktop_2013 which is the same version built for VS 2013.
Note that as you are using VS 2013 which includes the Windows 8.1 SDK with the somewhat dated Luna book, you may be trying to make use of the deprecated D3DX11 library. You can certainly do that with VS 2013, but you have to make some adjustments to the project include/lib paths to get it to work. See MSDN. The Effects 11 library version from CodePlex or NuGet has no dependencies at all on the legacy DirectX SDK.
I have some general notes about that book here as well.
For a complete list of D3DX11 alternatives, see Living without D3DX.

kernel32.lib accidentally deleted - VS 2012 Fix

I recently installed VS2012 on my home laptop to write some software for fun in my spare time. Here's the order in which the mishap happened:
Accidentally installed VS2012 for Windows 8 Apps. Realized that I actually wanted the Windows Desktop version.
Uninstall the above, install VS2012 for Windows Desktop.
Start writing software, everything is fine and compiles.
See random VS Folder that mentions Windows 8 on my start screen - permanently delete it from computer thinking it was related to #1.
My program no longer compiles, with the following common error:
error LNK1104: cannot open file 'kernel32.lib'
I searched my C-Drive to find the location of this file to try and diagnose the problem, except that it doesn't exist - I can't find it anywhere. I tried a fresh VS2012 install, and that was a bust - the same problem. I also tried to download the VS2012 SDK, but it won't install, insisting the VS2012 isn't installed, and that it's required.
What can I do!?
EDIT: I've tried to repair the install twice as well.
You need to (re-)install the Windows SDK. That includes everything you need to develop Windows apps, including the lib files for linking to system DLLs. You'll find the Windows 8 version for download here.
I have no idea why re-installing Visual Studio didn't work for you. It should include the Windows SDK, but maybe you're installing the wrong version. Not sure if Express versions include it, for example.
Note that the Windows SDK is not the same thing as the Visual Studio SDK. The SDK part means "Software Development Kit", so they're similar. But one is for developing software for Windows, while the other is for developing software for Visual Studio (like add-ins and extensions and whatnot). The Visual Studio SDK is not going to include lib files for system DLLs, though, so that's why it didn't work. And naturally it requires Visual Studio to be installed first.
After multiple re-installs, repairs, and SDK reinstalls, the only thing that worked was a full system restore.

Open CV 2.2 Include Directory Missing

I have several Windows 7 64bit systems with OpenCV 2.2 installed on them using CMake and Visual Studio 2008 Standard. CMake generates everything in C:\libs\OpenCV-2.2.0\build just fine and Visual Studio 2008 compiles everything without complaint.
However, every time I do this process on various machines I find that the include directory (C:\libs\OpenCV-2.2.0\build\include\opencv2) is either empty or nearly so. I usually end up thrashing around compiling different versions and poking on random project files until it appears and every time I think I have it figured out. However, with each new install I'm back to the begining.
Is this a known issue for 64bit build of OpenCV 2.2 on Windows 7 64bit using Visual Studio 2008 and is there a known workaround?
Various questions here seem to be hinting at the same thing and guides online are either old or don't reference the problem at all.
To solve this problem compile everything in release and debug then right click the INSTALL project in Visual Studio 2008 and choose Build. This will "install" numerous files and move all the include files into the proper location.
Now /include will contain subfolders
opencv
opencv2
and /include/opencv2 will contain numerous subfolders:
calib3d
contrib
core
feature2d
flann
gpu
highgui
imgproc
legacy
ml
objdetect
video
I just had the same problem. The Answer which explains that you have to rightclick and build the "INSTALL" project after you have built the debug/release works for me now. BUT: for me it was not a "build" folder which was created, but a folder called "install". Inside of that folder there is a include folder now which contains all the stuff you need for the include. The OpenCV version im using is OpenCV v3.2.
well i have the same problem with visual studio 2010,
and the answer
""To solve this problem compile everything in release and debug then right click the INSTALL project in Visual Studio 2008 and choose Build. This will "install" numerous files and move all the include files into the proper location""
cannot work on this. because when you choose 2010 visual configuration
there are no option to do debg or release. u do this afterwars from visual studio
when complile in debug or release mod. has one anny answer.
you my friend that have managed to create a full buld properly
can you please make one with qt support ,and with examples and docs cmake configuration amd please e mail it to me??
it wont take you more than some minutes
and this will be a great help because i try many days to solve it
How are you making \build\ ?
I didn't think opencv did out-of-source builds properly. At least I've never got them to work - have you tried setting the build dir to a completely separate tree?