Borland7 versus VisualStudio
Borland7 versus VisualStudio
Estoy empezando a querer compilar en 64 bits y me surgen "grandes dudas", a saber:
¿Compila Borland7 en 64 bits? pregunta del millón.
Si la respuesta anterior es afirmativa ¿Que compilador uso: Borland7 o VisualStudio?
¿Hay que usar Harbour o xHarbour?
A primera vista no se me ocurren mas, pero seguro que tendré muchas mas.
Gracias por las respuestas.
¿Compila Borland7 en 64 bits? pregunta del millón.
Si la respuesta anterior es afirmativa ¿Que compilador uso: Borland7 o VisualStudio?
¿Hay que usar Harbour o xHarbour?
A primera vista no se me ocurren mas, pero seguro que tendré muchas mas.
Gracias por las respuestas.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
JM,
> ¿Compila Borland7 en 64 bits? pregunta del millón.
Si, pero de momento no lo soportamos. Estamos investigándolo.
> Si la respuesta anterior es afirmativa ¿Que compilador uso: Borland7 o VisualStudio?
Visual Studio
> ¿Hay que usar Harbour o xHarbour?
Harbour
> ¿Compila Borland7 en 64 bits? pregunta del millón.
Si, pero de momento no lo soportamos. Estamos investigándolo.
> Si la respuesta anterior es afirmativa ¿Que compilador uso: Borland7 o VisualStudio?
Visual Studio
> ¿Hay que usar Harbour o xHarbour?
Harbour
Re: Borland7 versus VisualStudio
Aclarado.
Por el foro he encontrado una respuesta tuya que decía que el Visual Studio 2013 Express es la versión 12.0 (que aparece en los build.bat).
Entonces me he encontrado el la web http://www.visualstudio.com estas versiones:
Community 2013
Ultimate 2013
Premium 2013
Professional 2013
Test Professional 2013
Express 2013 para escritorio
Express 2013 para Web
Express 2013 para Windows
Visual Studio 2013 Update 5
¿De las versiones Express cual me descargo?
¿Es gratis la versión "Express"?
Gracias.
Por el foro he encontrado una respuesta tuya que decía que el Visual Studio 2013 Express es la versión 12.0 (que aparece en los build.bat).
Entonces me he encontrado el la web http://www.visualstudio.com estas versiones:
Community 2013
Ultimate 2013
Premium 2013
Professional 2013
Test Professional 2013
Express 2013 para escritorio
Express 2013 para Web
Express 2013 para Windows
Visual Studio 2013 Update 5
¿De las versiones Express cual me descargo?
¿Es gratis la versión "Express"?
Gracias.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
Y ya por último una preguntas mas:
Una vez instalado el "Express 2013 para escritorio" ¿sería posible sacar una árbol de directorios "transportable/portable" a otros PCs?, algo así como el BCC (bin, include, lib, etc...) y no tener que reinstalar cada vez.
No se si me he explicado.
Una vez instalado el "Express 2013 para escritorio" ¿sería posible sacar una árbol de directorios "transportable/portable" a otros PCs?, algo así como el BCC (bin, include, lib, etc...) y no tener que reinstalar cada vez.
No se si me he explicado.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
JM,
Eso se podría hacer, de hecho lo haciamos al principio de usar Visual Studio,
pero actualmente mi recomendación es no hacerlo y reinstalar en cada PC.
Es preferible usar la estructura de ficheros y carpetas que el propio Visual Studio crea.
Eso se podría hacer, de hecho lo haciamos al principio de usar Visual Studio,
pero actualmente mi recomendación es no hacerlo y reinstalar en cada PC.
Es preferible usar la estructura de ficheros y carpetas que el propio Visual Studio crea.
Re: Borland7 versus VisualStudio
OK.
El build64.bat veo que ya tiene los path apuntando a la instalación que hace Visual Studio.
Bueno pues listos para la nueva andadura.
Gracias.
El build64.bat veo que ya tiene los path apuntando a la instalación que hace Visual Studio.
Code: Select all | Expand
if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
Bueno pues listos para la nueva andadura.
Gracias.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Re: Borland7 versus VisualStudio
Sea como fuere he cogido el directorio VC del Visual Studio y lo he llevado a otro lugar fuera de ProgramFiles y modificando los build.bat apuntando al nuevo path funciona y compila bien.
Solo me queda "desinstalar" el Visual Studio y comprobar que si funciona, son unos 600Mb.
Por cierto: ¿hay forma de saber si un ejecutable es de 32 o 64 bits sin necesidad de ejecutarlo?
Solo me queda "desinstalar" el Visual Studio y comprobar que si funciona, son unos 600Mb.
Por cierto: ¿hay forma de saber si un ejecutable es de 32 o 64 bits sin necesidad de ejecutarlo?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
JM,
A ver si te funciona bien, ya nos contarás.
Las cabeceras de los EXEs son diferentes en 32 y 64 bits.
En 64 bits está esta cadena: "This program cannot be run in DOS mode"
En 32 bits aparece esta: "This program must be run under Win32"
A ver si te funciona bien, ya nos contarás.
Las cabeceras de los EXEs son diferentes en 32 y 64 bits.
En 64 bits está esta cadena: "This program cannot be run in DOS mode"
En 32 bits aparece esta: "This program must be run under Win32"
Re: Borland7 versus VisualStudio
Este mensaje, visto con un editor hexadecimal, me sale en un programa de 32 bits y en otro de 64 bits compilados con Visual Studio.Antonio Linares wrote:En 64 bits está esta cadena: "This program cannot be run in DOS mode"
Este mensaje NO me sale en programas de 32 bits ni de 64 bits compilados con Visual Studio. Sin embargo compilado con BCC7, el de 32 bits, si sale este mensaje.Antonio Linares wrote:En 32 bits aparece esta: "This program must be run under Win32"
¿El sistema operativo no tiene forma de saberlo con el menú contextual, administrador de procesos...? o alguna herramienta propia del sistema operativo.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
JM,
Tienes toda la razón, esa cadena es propia del compilador.
Podemos usar esta función de Windows:
https://msdn.microsoft.com/en-us/library/aa364819(VS.85).aspx
Tienes toda la razón, esa cadena es propia del compilador.
Podemos usar esta función de Windows:
https://msdn.microsoft.com/en-us/library/aa364819(VS.85).aspx
Re: Borland7 versus VisualStudio
Tratando de "wrapear" la función GetBinaryType me encuentro con el problema de no poder definir "un puntero a long o dword" para pasar una variable por referencia. Para strings existe y es la constante LPSTR.
Mirando los ficheros DLL.CH he encontrado las constantes para ello:
Pero no existe ninguna constante de "puntero a long o dword".
En los "Windows Data Types" https://msdn.microsoft.com/en-us/librar ... 51(v=vs.85).aspx están todos los tipos de variables, pero no me pone su valor de constante. Supongo que será la constante LPLONG o LPDWORD.
La constante LPSTR la define así: A pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
Pero la función dice que tiene que ser LPCTSTR definida como: An LPCWSTR if UNICODE is defined, an LPCSTR otherwise. For more information, see Windows Data Types for Strings.
En el ficheros DLL.CH tampoco tengo el valor de la constante LPCTSTR.
La definición de la función es esta:
https://msdn.microsoft.com/en-us/library/aa364819(VS.85).aspx
El wrapeado es:
¿Se podrían tener todos los valores de los tipos de variables?
Mirando los ficheros DLL.CH he encontrado las constantes para ello:
Code: Select all | Expand
#ifndef _C_TYPES
#define _C_TYPES
#define VOID 0
#define BYTE 1
#define CHAR 2
#define WORD 3
#ifdef __CLIPPER__
#define _INT 4 // conflicts with Clipper Int()
#else
#define _INT 7
#endif
#define BOOL 5
#define HDC 6
#define LONG 7
#define STRING 8
#define LPSTR 9
#define PTR 10
#define _DOUBLE 11 // conflicts with BORDER DOUBLE
#define DWORD 12
#define LONGLONG 13
#endif
En los "Windows Data Types" https://msdn.microsoft.com/en-us/librar ... 51(v=vs.85).aspx están todos los tipos de variables, pero no me pone su valor de constante. Supongo que será la constante LPLONG o LPDWORD.
La constante LPSTR la define así: A pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
Pero la función dice que tiene que ser LPCTSTR definida como: An LPCWSTR if UNICODE is defined, an LPCSTR otherwise. For more information, see Windows Data Types for Strings.
En el ficheros DLL.CH tampoco tengo el valor de la constante LPCTSTR.
La definición de la función es esta:
Code: Select all | Expand
BOOL WINAPI GetBinaryType(
_In_ LPCTSTR lpApplicationName,
_Out_ LPDWORD lpBinaryType
);
El wrapeado es:
Por otro lado la dll Kernel32.dll dispone de dos funciones GetBinaryType: GetBinaryTypeA (ANSI) y GetBinaryTypeW (Unicode), y no se cual usar.DLL32 FUNCTION GetBinaryType(cFile AS <no se que poner>, nType AS <no se que poner>) AS LONG PASCAL FROM "GetBinaryTypeW" LIB "Kernel32.dll"
¿Se podrían tener todos los valores de los tipos de variables?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
Prueba asi:
DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR ) AS LONG PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"
y pasa el valor nType por referencia a la función:
@nType
DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR ) AS LONG PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"
y pasa el valor nType por referencia a la función:
@nType
Re: Borland7 versus VisualStudio
Usando la función GetBinaryTypeA me da el error de "Programa.exe dejo de funcionar...". Usando GetBinaryTypeW funciona el ejecutable pero no hace nada, no me devuelve la variable nType "modificada".Antonio Linares wrote:DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR ) AS LONG PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"
En ambos casos se compila bien. Pasa lo mismo compilado con BCC7 y con VS12.
El código fuente:
Code: Select all | Expand
#include "FiveWin.Ch"
FUNCTION main()
public cFichero:="Programa.exe",nTipo:=-1
GetBinaryType(cFichero,@nTipo)
MsgInfo(nTipo,"Tipo de fichero")
return nil
DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR) AS LONG PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"
Probablemente la única solución sea usando código C puro (#pragma BEGINDUMP .../... #pragma ENDDUMP)
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Borland7 versus VisualStudio
JM,
Prueba a quitar la claúsula PASCAL:
DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR) AS LONG FROM "GetBinaryTypeA" LIB "Kernel32.dll"
y usa GetBinaryTypeA
Prueba a quitar la claúsula PASCAL:
DLL32 FUNCTION GetBinaryType(cFile AS LPSTR, nType AS PTR) AS LONG FROM "GetBinaryTypeA" LIB "Kernel32.dll"
y usa GetBinaryTypeA