Page 1 of 1

MSVC 2012

Posted: Mon Nov 04, 2013 12:15 pm
by Richard Chidiak
Hello

Is anyone using MSVC 2012 in production yet ?

If yes how did you set for windows xp compatibility ? Applications build with msvc 2012 will not run native with xp or vista

From MSDN

http://blogs.msdn.com/b/vcblog/archive/ ... 57555.aspx

The problem as far as i understood (hope i am wrong) , the setting has to be changed in every project's property..... How can we do it with our configuration files ?

Thanks for reply

Richard

PS : this problem does not occur with MSVC 2010 as i have already released a version of my program and it is working OK under xp also.

Re: MSVC 2012

Posted: Mon Nov 04, 2013 5:33 pm
by lucasdebeltran
Richard,

You are right, MSVC 2012 does not work with XP, so that´s why we still use MSVC 2010.

Re: MSVC 2012

Posted: Tue Nov 05, 2013 1:32 pm
by Antonio Linares
Richard,

I wasn't aware of this limitation, but after reading your posted url it seems as Microsoft already solved it and it is as simple as changing just one flag on the projects settings once.

So with a minimal change in the project settings, it should be all ok :-)

Re: MSVC 2012

Posted: Tue Nov 05, 2013 1:39 pm
by fgondi

Re: MSVC 2012

Posted: Tue Nov 05, 2013 1:56 pm
by Antonio Linares
Fernando,

Was that flag also needed besides the project flag pointed by Microsoft ? thanks

Re: MSVC 2012

Posted: Tue Nov 05, 2013 4:07 pm
by Richard Chidiak
Fernando

from what i read Service Pack 1 of Visual Studio 2012 is required, i am going to update.

Did you succeed building with this flag ?

I get an error at execution under xp

can not find procedure entry point lcmapstringex in kernel32.dll

Antonio

How can we set this with harbour ? it is a compile flag

set CL=/D_USING_V110_SDK71_;%CL%

Richard

Re: MSVC 2012

Posted: Tue Nov 05, 2013 4:49 pm
by fgondi
I'm using:

/nologo /subsystem:WINDOWS,5.01 /force:multiple /NODEFAULTLIB:libc /nxcompat:NO /machine:X86 /Ignore:4006

that is working fine with XP and Vista

Re: MSVC 2012

Posted: Tue Nov 05, 2013 10:20 pm
by Richard Chidiak
Using same parameters do not work for me.

If you use Uestudio, do you mind sharing the application file or any other make file ?

Thank you

Richard

Re: MSVC 2012

Posted: Wed Nov 06, 2013 8:37 am
by Richard Chidiak
Problem solved

An update for Msvc 2012 was necessary

Now applications built with Msvc 2012 run OK on windows xp also :D

Thanks for your help

Antonio : I will send you an updated file for uestudio

Richard

Re: MSVC 2012

Posted: Wed Nov 06, 2013 8:41 am
by fgondi
I use Uestudio and Pelles c

MSVC2012 is installed on "C:\Microsoft Visual Studio 11.0"
and
I use SDK that I have in "C:\Microsoft Visual Studio 11.0\SDK\v8.0"

Code: Select all

# --------- Harbour y FWH configuration --------
# --- general --------------------------------------
# $P  - project name
# $Pp - path to project directory
# $Pn - project name
# --- compile --------------------------------------
# $I  - input full name
# $Ip - input path
# $In - input name
# $Ie - input extension
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for compiler
# --- build ----------------------------------------
# $T  - target full name
# $Tp - target path
# $Tn - target name
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for linker

[Settings]
Target = 
Category&01 = DEFAULT RUN CONFIGURATION
Working Directory =.
Command Line Arguments =

Category&02 = Harbour Options
GUI = none|FWH
3rd Party Rdd = None|RddAds
Automatic Memvar Declaration = no|yes
Variables Are Assumed = no|yes
Generate Preprocessed Output = no|yes
Warning Level = 1|2|3|4|0
Use Harbour Dll = no|yes
User Include Path =
User Defines =

Compiler Options =
Linker Options =

Excluded Files = Excludes
External Dependencies=yes|no 

[SettingsInfo]
Target = Provides a space for you to specify an output file and location of the program that the linker creates.
Working Directory = Provides a space for you to specify the directory in which executing occurs. If you do not specify a directory, executing occurs in the directory where the executable is located.
Command Line Arguments = Provides a space for you to specify command-line arguments you want to pass to the program at startup.
Compiler Options = Provides a space for you to specify an additional compiler options.
User Defines = Shows the switches the tool will use to build. Use ';' as delimiter.
Use MT Library = Set this if you want to use Multi threaded libraries
Linker Options = Provides a space for you to specify an additional linker options.
Excluded Files = This will exclude the file(s) included in this UE project group from the build.
External Dependencies=If you select "yes" option, UE Studio will generate in project group "External Dependencies" from included files.
3rd Party Rdd = You can specify here 3rd party Rdd

[SettingsReps]
User Defines = @[;|-D%s]
Automatic Memvar Declaration = no=|yes=/a
Variables Are Assumed = no=|yes=/v
Generate Preprocessed Output = no=|yes=/p
User Include Path = ^^@[;|;%s]
User Include Path&1 = ^^@[;| /i%s]
Use Multi Thread Library = no|yes
Warning Level = @/w%s
Use Harbour Dll = no=|yes=harbour.lib
External Dependencies=yes=1|no=0

[Variables]
FWH = c:\FWH
HPATH = c:\Harbour
CPATH = "c:\Microsoft Visual Studio 11.0\VC"
SDKPATH = "C:\Microsoft Visual Studio 11.0\SDK\v8.0"

HPATHL = $(HPATH)\LIB\vc32
CPATHL = $(CPATH)\LIB
SDKPATHL = $(SDKPATH)\Lib\win8\um\x86
SDKPATHI = $(SDKPATH)\INCLUDE\UM;$(SDKPATH)\INCLUDE\SHARED

GUII = {[$(GUI)=][none=][FWH=;$(FWHI)]}
GUIL = {[$(GUI)=][none=][FWH=;$(FWHL)]}
GLnk = {[$(GUI)=][none=/ap][FWH=/aa]}
DCon = {[$(GUI)=][none=1][FWH=0]}

GUII&1 = {[$(GUI)=][none=][FWH=/i$(FWHI)]}

HOPT = /n /gc1 /es2 /q /m /w $(Compiler Options) /i$(HPATH)\INCLUDE $(User Include Path&1) /i$(FWHI) $(User Defines) $(Automatic Memvar Declaration) $(Variables Are Assumed) $(Generate Preprocessed Output) $(Warning Level)
COPT = -TP -W3 -c /GA -I$(HPATH)\INCLUDE -I"$(CPATH)\INCLUDE" -I$(FWH)\INCLUDE -I"$(SDKPATHI)"

LOPT = /nologo /subsystem:WINDOWS,5.01 /force:multiple /NODEFAULTLIB:libc /nxcompat:NO /machine:X86 /Ignore:4006

LIBS1 = $(Use Harbour Dll) {[$(GUI)=][none=][FWH=$(FWH)\LIB\FiveH32.lib $(FWH)\LIB\FiveHC32.lib]}
LIBS2 = $(HPATHL)\hbrtl.lib $(HPATHL)\hbvm.lib {[$(GUI)=][none=$(HPATHL)\gtwin.lib][FWH=$(HPATHL)\gtgui.lib]} $(HPATHL)\hblang.lib $(HPATHL)\hbmacro.lib $(HPATHL)\hbrdd.lib $(HPATHL)\rddntx.lib $(HPATHL)\rddcdx.lib $(HPATHL)\rddfpt.lib $(HPATHL)\hbsix.lib $(HPATHL)\hbdebug.lib $(HPATHL)\hbcommon.lib $(HPATHL)\hbpp.lib $(HPATHL)\hbcpage.lib $(HPATHL)\hbwin.lib $(HPATHL)\hbcplr.lib $(HPATHL)\hbpcre.lib $(HPATHL)\hbct.lib $(HPATHL)\xhb.lib $(HPATHL)\png.lib $(HPATHL)\hbzlib.lib $(HPATHL)\hbtip.lib $(HPATHL)\hbssl.lib $(HPATHL)\hbtipssl.lib $(HPATHL)\libeay32.lib $(HPATHL)\ssleay32.lib
LIBS3 = "$(SDKPATHL)\kernel32.lib" "$(SDKPATHL)\user32.lib" "$(SDKPATHL)\gdi32.lib" "$(SDKPATHL)\winspool.lib" "$(SDKPATHL)\comctl32.lib" "$(SDKPATHL)\comdlg32.lib" "$(SDKPATHL)\advapi32.lib" "$(SDKPATHL)\shell32.lib" "$(SDKPATHL)\ole32.lib" "$(SDKPATHL)\oleaut32.lib" "$(SDKPATHL)\uuid.lib" "$(SDKPATHL)\odbc32.lib" "$(SDKPATHL)\odbccp32.lib" "$(SDKPATHL)\iphlpapi.lib" "$(SDKPATHL)\mpr.lib" "$(SDKPATHL)\version.lib" "$(SDKPATHL)\wsock32.lib" "$(SDKPATHL)\msimg32.lib" "$(SDKPATHL)\oledlg.lib" "$(SDKPATHL)\psapi.lib" "$(SDKPATHL)\gdiplus.lib" "$(SDKPATHL)\winmm.lib" "$(SDKPATHL)\WS2_32.lib" "$(SDKPATHL)\Asycfilt.lib" "$(SDKPATHL)\OlePro32.lib"
LIBS = $(LIBS1) {[$(3rd Party Rdd)=][RddAds=$(HPATHL)\rddads.lib $(HPATHL)\ace32.lib]} $(LIBS2) "$(LIBS3)"

LinkWith = {[$(GUI)=][none=c0x32.obj][FWH=c0w32.obj]}

[Environment]
PATH = $(HPATH)\BIN;$(CPATH)\BIN;$(SDKPATH)\bin\x86;%PATH%
INCLUDE = $(HPATH)\INCLUDE;$(CPATH)\INCLUDE;$(SDKPATHI);$(FWH)\INCLUDE
LIB = $(HPATHL);$(CPATHL);$(SDKPATHL);$(GUIL)
BuildMode = %UESMode%

[General]
TargetExt = .EXE
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 0
Excludes = $(Excluded Files)
GenerateEDGroup=$(External Dependencies)
.CPP = .C

[MakeCommands]
run = Execute Application
makef = Show Makefile

[Execute Application]
Title = Execute $T
Cmd0 = $(Command Line Arguments)
Depends = $T
ShowWindow = 1
DisplayConsole = $(DCon)

[Show Makefile]
Title=Show makefile
Cmd0=uestudio makefile
ShowWindow=1
DisplayConsole=0

[InsertFiles]

[FileGroups]
FGO = .obj;
FGR = .res;
FGL = .lib;
FGD = .def;

[GroupFormats]
FGO = %s
FGR = %s
FGL = %s

[Build]
Out = $T
Depends = $FGO $FGR
DebugFlag = 
ReleaseFlag = 
Cmd0 = LINK $(LOPT) $FGO $FGR $FGL $(LIBS) /OUT:$(Working Directory)\$On.exe

[.PRG]
Out = $In.c
DebugFlag = /b
ReleaseFlag =
Cmd0 = harbour $I $(HOPT) $R /o$O 

IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.

[.C]
Out = $In.obj
Cmd0 = cl.exe $(COPT) $I

[.RC]
Out = $In.res
Cmd0 = rc -r -d__FLAT__ /i"$(SDKPATHI)" -fo"$O" "$I"
# Cmd0 = C:\PellesC\bin\Porc.exe /IC:\PellesC\include\win /IC:\PellesC\include /Fo$O /R $I

IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.