Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1067306 Posts in 43579 Topics- by 35619 Members - Latest Member: teamsheepy

November 28, 2014, 08:54:33 AM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)C++ msvc100.dll
Pages: [1] 2
Print
Author Topic: C++ msvc100.dll  (Read 7689 times)
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« on: October 31, 2011, 01:48:50 AM »

I wonder, how can i let people run my game compiled with MSVC 2010, while they lack msvc100.dll?

Any ideas?
Logged

Nothing to do here
Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #1 on: October 31, 2011, 02:04:47 AM »

Link to MS download for DLL file: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84

Quote from here:
Quote
I am not sure what do you mean by better solution, however you have 3 options

1) Do not refer this dll directly or indirectly in your application. In this case you just don't need it.

2) Package it with your application and install it whereever your application is installed. Many many developers choose this.

3) Install it from the link in my first post.

Note: I am sure that you are not refering to this dll directly in your code as of now. Go back and check all the linked dlls which VS links for you by default and remove all of those which are not required.
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Liosan
Level 2
**


View Profile
« Reply #2 on: October 31, 2011, 02:36:07 AM »

There is a fourth option - package the .dll with your .exe, manually create your own external manifest file (disabling the manifest embedded in the .exe), and host the game as a .zip archive that works out of the box. It's a lot of grudgy, low-levelish work, but doesn't require the user to install anything. I managed to get this working for Visual Studio 2008, but it should be similar for 2010. The last I check, it's fully legal with the EE license.

I can find some links in my bookmarks when I get home if you want, don't really have anything right now.

Liosan
Logged

Klaim
Level 10
*****



View Profile WWW
« Reply #3 on: October 31, 2011, 02:41:30 AM »

No, in VC10 and further they simpplified everything to only make you require this dll and another one I think, at runtime. So it's even easier to provide your own dll. The problem is only about security. I think maybe finding a way to provide you exe with the dlls to make it work "as is" is fine but still using the system's one if more recent would be perfect. That would imply a lot of work so I guess nobody does it.
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« Reply #4 on: October 31, 2011, 02:55:28 AM »

I would like it to stand as stand-alone, but if this:

Quote
2) Package it with your application and install it whereever your application is installed. Many many developers choose this.

Is better option, then i guess i should pick it.

Could you give me any details on it?
Logged

Nothing to do here
Klaim
Level 10
*****



View Profile WWW
« Reply #5 on: October 31, 2011, 03:22:31 AM »

Somewhere in the MSDN but also somewhere in the "redist" folders in your MSVC installation, there is an executable that is an installer for those files.

Put it in your installer and make the installer call it. It will do the rest.
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
Aloshi
Level 2
**



View Profile
« Reply #6 on: October 31, 2011, 03:55:28 AM »

I solved this problem with static linking. It increases build time, executable size, and is probably not the most secure way of doing things (the system can't use a newer version of the dll if one exists). But it works and was very easy.
Logged
Ludophonic
Level 2
**


View Profile WWW
« Reply #7 on: October 31, 2011, 10:42:47 AM »

I wonder, how can i let people run my game compiled with MSVC 2010, while they lack msvc100.dll?

Any ideas?
Download the Windows Driver Kit (WDK) from microsoft (it's free).

It comes with a compiler and linker you can use to make a final build that links to the system CRT instead of visual studio. You'll have to dirty your hands with the command line a bit though.
Logged
rivon
Level 10
*****



View Profile
« Reply #8 on: October 31, 2011, 10:43:47 AM »

Or use MinGW if it's possible.
Logged
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« Reply #9 on: October 31, 2011, 11:32:28 AM »

Thanks for these guys, but they didn't help me too much.

I still have no clue how to do that!  Screamy

I know i have to do some installer, but i never did it before. I'm new to MSVC 2010.
Logged

Nothing to do here
Nix
Level 10
*****



View Profile
« Reply #10 on: October 31, 2011, 12:14:59 PM »

Do not redistribute the DLL directly. It's messy and I think it might even be against the EULA. You have the user's install the MSVC++2010 Redistributable package: http://www.microsoft.com/download/en/details.aspx?id=5555

You can integrate this into your own installer if you would like.
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #11 on: October 31, 2011, 01:33:41 PM »

srsly, redistributing the dll like a ninja or asking the user to download a 3 gigabytes microsoft library?
Which option do you think moi would take huh?
Logged

subsystems   subsystems   subsystems
Ben_Hurr
Level 10
*****


nom nom nom


View Profile Email
« Reply #12 on: October 31, 2011, 01:44:54 PM »

srsly, redistributing the dll like a ninja or asking the user to download a 3 gigabytes microsoft library?
Which option do you think moi would take huh?

I agree.
This pretty much guarantees I won't bother downloading a game that makes me do that, haha.  Durr...?
Logged
Aloshi
Level 2
**



View Profile
« Reply #13 on: October 31, 2011, 02:11:31 PM »

Do not redistribute the DLL directly. It's messy and I think it might even be against the EULA.

This is pretty much why I decided to go with static linking. I hate being forced to use an installer and wanted a simple zipped version of my game, so this seemed like the best option.

What you do is open your project properties in MSVC++ (Project -> Properties, or Alt + F7), and on the side select Configuration Properties -> C/C++ -> Code Generation. MSVC++ has Configuration settings for Release and Debug. Depending on your setting, change Runtime Library to Multi-threaded (/MT) or Multi-threaded Debug (/MTd). I recommend only doing it for Release mode, as it adds to the build time, and if you're debugging you're already on a computer with the DLL. Keep in mind that if you use any libraries, you'll probably have to recompile them like this too or you'll get errors (at least, I did for SFML).
Logged
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« Reply #14 on: October 31, 2011, 02:15:37 PM »

Quote
Keep in mind that if you use any libraries, you'll probably have to recompile them like this too or you'll get errors (at least, I did for SFML).

Yup... I have those:

Code:
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>LIBCMT.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>C:\Documents and Settings\MacKam\Pulpit\CPP\Scrolling\Release\Scrolling.exe : fatal error LNK1169: one or more multiply defined symbols found

No idea how to fix that.

Quote
3 gigabytes microsoft library?

I guess it isn't 4mb as showed?  WTF
Logged

Nothing to do here
Nix
Level 10
*****



View Profile
« Reply #15 on: October 31, 2011, 06:24:43 PM »

It ends up being ~25MB
Logged
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« Reply #16 on: October 31, 2011, 11:50:49 PM »

That's weird, that you have to download msvc redist. package to run an application/game. Just as msvc redist. would be C++ programs emulator  Roll Eyes
Logged

Nothing to do here
Klaim
Level 10
*****



View Profile WWW
« Reply #17 on: November 01, 2011, 10:18:32 AM »

What?

No the redist install the dlls required if you used standard libraries and other basic libraries that does require some kind of linking. If you don't want to use those dlls or provide the redist, the static way works, and there is also the choice to not use those libraries.
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
kamac
Level 10
*****


Notorious posts editor


View Profile Email
« Reply #18 on: November 01, 2011, 10:24:43 AM »

Aha.

Well i use these:

Code:
#include <SFML\Graphics.hpp>
#include <SFML\Window.hpp>

#include <iostream>
#include <stdio.h>
#include <sstream>

Not sure which aren't standard ones  WTF
Logged

Nothing to do here
Klaim
Level 10
*****



View Profile WWW
« Reply #19 on: November 01, 2011, 10:26:24 AM »

Quote
#include <iostream>
#include <stdio.h>
#include <sstream>

You don't know that those are standard libraries?
Logged

http://www.klaimsden.net | Game : NetRush | Digital Story-Telling Technologies : Art Of Sequence
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic