See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

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

Login with username, password and session length

Author Topic: VS2013 set up  (Read 15754 times)

0 Members and 1 Guest are viewing this topic.

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
19 May 2014, 13:26:31
I hope someone can help.
I installed VS2013 and having problems setting up a good solution. 

Also the ones I have made have issues.  When the users go to run them they get a message about missing dll
specifically these:MSVCP120.dll and MSVCR120.dll

Also maybe related.  When focused on a ummu and exit when I restart CTD


Offline antoo

  • Legend
  • ******
  • Posts: 3659
  • Country: France fr
  • Karma: 179
  • MSFS ❤️
Reply #1 - 19 May 2014, 13:37:17
I had a similar problem, and I did not found any solution :(. I tried to download those files, but it was not useful. Finally I downloaded a clean Orbiter.

Sorry.

---------------------------------------------------------------------------------------------------
"ET C´EST PARTI!!" Youri Gagarine au lancement de vostok 1 le 12 avril 1961

Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #2 - 19 May 2014, 17:41:07
Did you install Visual C++ Redistribuable Packages (http://www.microsoft.com/en-US/download/details.aspx?id=40784) on users' computers ?


Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #3 - 19 May 2014, 17:55:18
What?
I was told if I change this:
If you link with the static runtime libraries you won't need users to install the Visual Studio redistributables. That is set by going to Properties -> Configuration Properties -> C/C++ -> Code Generation and setting Runtime Library to "Multi-threaded Debug (/MTd)" for debug builds and "Multi-threaded (/MT)" for release builds. As long as you don't free (delete) a memory block allocated by Orbiter (which you shouldn't do anyway) it should work fine. [XR vessels use static linking.]


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #4 - 19 May 2014, 18:33:22
I think you are right. But did you try to install it (in case it works) ?


Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #5 - 19 May 2014, 18:40:06
So I need to install it on my computer that makes the dll?


Offline florian6973

  • Full Member
  • ***
  • Posts: 80
  • Karma: 8
Reply #6 - 19 May 2014, 18:49:13
Yes ! :)


Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #7 - 20 May 2014, 13:17:40
Thanks.  A couple of images.  I downloaded and installed the x86 one.  I am running Windows 7 professional.



I rebooted and recompiled and they still get this message:


They say they do this:
If I put the Mscvp.dll in, when I reload, it will ask for the other Mscvr120.dll
otherwise the mesh is invisible.
Using regular graphics, it loads, NO MESSAGE, but again the mesh/addon is invisible.





« Last Edit: 20 May 2014, 13:26:08 by gattico »

Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7408
  • Country: France fr
  • Karma: 598
  • Plus on rate, plus on a de chances de réussir !..
Reply #8 - 20 May 2014, 13:44:18
:wonder: mhhh...

 Try to search for MSVCP120.dll file which should be in C:\Windows\System32  folder or/and C:\Windows\SysWOW64 folder...

(you must have actived before "view hidden folders and files")

If you can't see it, try to dowload it and install this MSVCP120.dll file in these folders... (just a suggestion, I'm not sure...)

Mes add-ons sont là !

Offline Kendo

  • Jr. Member
  • **
  • Posts: 30
  • Country: United Kingdom gb
  • Karma: 2
Reply #9 - 20 May 2014, 14:45:00
What Gattico is saying, when he compiles his end, using the MT setting,  the user does not need the Msvcp120.dll or the Msvcr120.dll.

« Last Edit: 20 May 2014, 15:15:21 by Kendo »

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #10 - 20 May 2014, 14:46:11
Ok.  So those should be in my folder.  The one compiling
It is in the Windows/System32

« Last Edit: 20 May 2014, 16:33:38 by gattico »

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #11 - 20 May 2014, 20:29:31
Are you sure that the correct DLL is loaded ? The executable cannot ask (AFAIK) Windows to load the runtime executables (MSVCR120 is C runtime for VS 2013, MSVCP120 if C++ runtime for VS 2013)  if they are included in the DLL, which is the case since you compiled with /MT. I suspect that Orbiter is actually loading an old version of your DLL.

Also, do you have a 32-bit (x86) or 64-bit (x64) machine ? Your incapacity to install VS redistributables for x64 indicates to me that you have a 32-bit machine, but maybe it is another error.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #12 - 20 May 2014, 21:15:06
Yes I have 32 bit system
Are you sure that the correct DLL is loaded ? The executable cannot ask (AFAIK) Windows to load the runtime executables (MSVCR120 is C runtime for VS 2013, MSVCP120 if C++ runtime for VS 2013)  if they are included in the DLL, which is the case since you compiled with /MT. I suspect that Orbiter is actually loading an old version of your DLL.

Not sure?
Quote
Also, do you have a 32-bit (x86) or 64-bit (x64) machine ? Your incapacity to install VS redistributables for x64 indicates to me that you have a 32-bit machine, but maybe it is another error.
yes a 32 system


Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #13 - 20 May 2014, 22:06:03
To make sure that the proper DLL is loaded in Orbiter, delete every files that Visual Studio created for you in Orbiter's Modules directory. You should find MyProject.dll and maybe a MyProject.pdb and other files (if your project's name is MyProject). Delete all of them and regenerate the files in Visual Studio (ensuring yourself that you are compiling with /MT). Therefore, you will be sure that Orbiter is loading the latest DLL.

It was my problem a long time ago. I was changing project properties in Visual Studio and Orbiter didn't reflect my changes because it was loading an old version of the DLL. In fact, I accidentally changed Visual Studio Output Directory and the DLL was created in another directory.

Also, since you have a 32-bit machine, you shouldn't be able to compile in x64 (AFAIK, because I have 64-bit machine). Just to be sure, can you verify that you have /MACHINE:x86 in your Project Properties -> Linker -> Advanced -> Target machine (I don't know the exact names in English, my Visual Studio installation is in French).

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #14 - 21 May 2014, 00:27:04
ok.  I deleted the dll parts it made.

recompiled
still asking for the dll's.

Would it matter that VS2013 is in my c: drive and Orbiter in E:?


Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #15 - 21 May 2014, 01:28:10
Very weird issue... Did you try to delete every other file except the DLL. I remember that Orbiter once loaded my PDB instead of my DLL for an unknown reason. Keep ALIENBASE.dll only in the Modules directory.

For your personnal interest, in order to avoid all these unnecessary files in the Modules directory, I usually set up my Property Sheets so that the PDB, the LIB and other garbage are thrown in the Intermediate directory, defined by the constant $(IntDir), instead of $(OutDir). You must find every reference to $(OutDir) in the Project Properties and change them to $(IntDir). This is all optional and should not be related to your issue.

No, it shouldn't matter if it is not the same disk. For Windows, there is nothing different between a disk and another. It is just another path.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #16 - 21 May 2014, 01:51:22
It works fine on my PC.  The issue is on others?  So I just sent the Alienbase.dll in the module folder


Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #17 - 21 May 2014, 05:02:06
Maybe your project depends on external librairies that depends on external DLLs (which is quite weird...). One cause that I am thinking about is that your project uses MFC or ATL (which should not be the case, especially if you are using Visual Studio Express, since they are not included in it). Check if in the General section of Project Properties, Under MFC Usage (not sure about the translation). It should say something like "Using standard Windows librairies".

Otherwise, I recommend you to run the Dependency Walker (http://www.dependencywalker.com/) on your DLL to find who is responsible for loading the runtime librairies in a DLL. Load your DLL in the Dependency Walker and show me the results.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #18 - 21 May 2014, 05:17:57
I am running the full version of VS2013. 
here is the mfc info

and the depencywindow



this shows the
MSVCP120.DLL not loaded
MSVCR120.DLL not loaded
MSVCRT.DLL     not loaded

« Last Edit: 21 May 2014, 05:26:41 by gattico »

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #19 - 21 May 2014, 05:29:43
Sorry, I thought their would be less modules in your DLL. I'll send you my email address by PM, so you can send me your DLL and I can inspect it.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #20 - 21 May 2014, 22:20:51
Following some exchanges in private, I think I found your problem. In your project properties, under Linker -> Ignore specific librairies, you should set it to msvcrt.lib;%(IgnoreSpecificDefaultLibraries) .

Previously, you had libcmt.lib. Therefore, you are actually saying to Visual Studio to ignore the static runtime library. You specify /MT to use libcmt.lib, but you ask that this library should be ignored... Visual Studio probably have an existential crisis and asks Windows to load the dynamic librairies.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #21 - 21 May 2014, 23:17:59
Like this:


but I get these warning and errors:
Warning   1   warning MSB8028: The intermediate directory (..\Release\) contains files shared from another project (CAPTURE.vcxproj, INVISOBASE.vcxproj, INVISOBASE2.vcxproj, INVISOBASE3.vcxproj, INVISOBASE4.vcxproj, MMSEV5.vcxproj, MMSEV5A.vcxproj, NEB.vcxproj, NEB2.vcxproj).  This can lead to incorrect clean and rebuild behavior.   C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets   381   5   ALIENBASE

Warning   2   warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library   E:\orbiter2010p1A\Orbitersdk\samples\ALIENBASE\LINK   ALIENBASE

Error   3   error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)   E:\orbiter2010p1A\Orbitersdk\samples\ALIENBASE\MSVCRT.lib(ti_inst.obj)   ALIENBASE

Error   4   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)   E:\orbiter2010p1A\Orbitersdk\samples\ALIENBASE\MSVCRT.lib(ti_inst.obj)   ALIENBASE

Error   5   error LNK1169: one or more multiply defined symbols found   E:\orbiter2010p1A\Modules\ALIENBASE.dll   1   1   ALIENBASE





Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #22 - 21 May 2014, 23:37:48
Change msvcirt.lib for msvcrt.lib (without the 'i') and it should do the trick.

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #23 - 21 May 2014, 23:45:01
Thanks.  We will see.  :)


Offline gattico

  • Sr. Member
  • ****
  • Posts: 337
  • Country: United States us
  • Karma: 15
Reply #24 - 22 May 2014, 12:44:45
 Thanks.  That fixed it.