Red de conocimiento informático - Problemas con los teléfonos móviles - visual c 6.0 WIN7 64 bits

visual c 6.0 WIN7 64 bits

// Lo encontré en línea, también estoy ejecutando un sistema win7 de 64 bits

Primero, adjunte una explicación detallada del error de un problema clásico

Cuando aprendo VC, a menudo me encuentro con el error de conexión LNK2001. Este error es muy molesto, porque para los programadores el mejor error es corregir el error de compilación, y generalmente cuando ocurre el error de conexión, la compilación ha pasado. Hay muchas razones para los errores de conexión, especialmente el error LNK2001, que a menudo se desconoce. Corregir los errores de conexión LNK2001 es muy difícil sin un estudio y una comprensión profundos de VC.

En el proceso de aprendizaje de VC, los mensajes de error de LNK2001 encontrados por los principiantes son principalmente:

Símbolo externo "símbolo" no resuelto ("símbolo" externo incierto).

Este mensaje de error se genera si el vinculador no puede encontrar la función, variable o etiqueta a la que se hace referencia en todos los archivos de biblioteca y archivos de objetos. En términos generales, hay dos razones para este error: primero, la función o variable a la que se hace referencia no existe, está escrita incorrectamente o se usa incorrectamente; segundo, es posible que se esté usando una versión diferente de la biblioteca de conexión.

Las siguientes son posibles causas de errores de LNK2001:

I. Errores de codificación que causan LNK2001

1 Posible discrepancia en el código del programa o la definición del módulo (.DEF). archivos Causas LNK2001. Por ejemplo, si declara la variable "var1" en un archivo fuente C y luego intenta declararla como la variable "VAR1" en otro archivo, puede producirse un error LNK2001. Este error ocurre si declara la variable "var1" en un archivo fuente C y luego intenta acceder a ella en otro archivo usando la variable "VAR1".

2. Si utiliza funciones en línea definidas en el archivo .CPP en lugar del archivo de encabezado, se producirá un error LNK2001.

3. Llamar a una función cuyo tipo de parámetro no coincide con el tipo de declaración de función resultará en un error LNK2001.

4. Intentar llamar a una función virtual desde un constructor o destructor de clase base resultará en un error LNK2001. Preste atención a los puntos en común entre funciones y variables. Solo las variables y funciones globales son comunes. Las funciones estáticas y las variables estáticas tienen las mismas restricciones de alcance de uso. Intentar acceder a cualquier variable estática no declarada en el archivo desde fuera del archivo dará como resultado un error de compilación o LNK2001.

Las variables (variables locales) declaradas en una función solo se pueden utilizar dentro del alcance de la función.

Las constantes globales de C sólo tienen conectividad estática. A diferencia del lenguaje C, intentar utilizar variables globales en varios archivos en C también generará un error LNK2001. Una solución es incluir el código de inicialización de la constante en un archivo de encabezado cuando sea necesario e incluir el archivo de encabezado en el archivo .CPP; otra es asignar una constante a la variable cuando se use;

II.LNK2001 causado por la configuración de compilación y enlace

1 Si usa la opción /NOD (/NODEFAULTLIB) para compilar, la biblioteca de tiempo de ejecución y la biblioteca MFC requeridas por el programa. estar vinculado en Los módulos de objeto son escritos por el compilador durante el proceso, pero estas bibliotecas no están vinculadas al archivo del proyecto a menos que estén incluidas explícitamente en el archivo. El uso de /NOD en esta situación generará el error LNK2001.

2. Si no configura el punto de entrada del programa para winMainCRTStartup, recibirá el mensaje de error LNK2001 "externo sin resolver en _WinMain@16" cuando utilice Unicode y MFC.

3. Al compilar con la opción /MD, dado que todas las bibliotecas de tiempo de ejecución se conservan en la biblioteca de vínculos dinámicos, la referencia a "func" en el archivo fuente es una referencia a "__imp__func" en el archivo de destino. . LNK2001 aparecerá en __imp__func si intenta vincular con la biblioteca estática LIBC.LIB o LIBCMT.LIB. También aparecerá al vincular con MSVCxx si compila sin la opción /MD

Traducción. Al compilar con la opción /ML, LNK2001 ocurre en _errno al vincular con LIBCMT.LIB.

5. Al compilar con la versión de depuración de la aplicación, LNK2001 aparecerá cuando se vincule con la biblioteca modal de lanzamiento. De manera similar, cuando se use la versión de depuración de la aplicación, LNK2001 también aparecerá cuando se vincule con la versión. Biblioteca modales.

6. Mezclar diferentes versiones de bibliotecas y compiladores también puede causar problemas, porque las versiones más nuevas de las bibliotecas pueden contener símbolos e instrucciones que no se encuentran en versiones anteriores.

Si la inserción está activada (/Ob1 o /Ob2) al programar una función, pero la inserción está desactivada (sin la palabra clave inline) en el archivo de encabezado correspondiente que describe la función, aparecerá este error. mensaje. Para evitar este problema, las funciones en línea deben marcarse con la palabra clave en línea en el archivo de encabezado correspondiente.

8. Las configuraciones incorrectas de /SUBSYSTEM o /ENTRY también pueden causar LNK2001.

Windows 7 instala perfectamente Visual C 6.0

Efectivamente, es un poco problemático utilizar esta antigua y clásica herramienta de programación Visual C 6.0 en Windows 7 o Vista, pero por motivos profesionales, Tuve que usar Visual C 6.0, así que poco a poco comencé a explorar soluciones.

Al comienzo de la programación de Visual C en Win7, usé Vmware para ejecutar XP y luego instalé Visual C 6.0 en XP virtual para implementarlo. Sin embargo, descubrí el problema después de usarlo durante mucho tiempo. , solo unas pocas veces Al usar el compilador de Visual C 6.0 en una máquina virtual, VC6 se "congela". Al usar el administrador de tareas, "" ¡He estado usando este problema durante mucho tiempo!

Pero el semestre casi ha terminado. Después de un largo período de exploración y Google, finalmente descubrí que puedo instalar Visual C 6.0 directamente en Windows 7 y completar la compilación y operación de una lista vinculada en lenguaje C en el entorno de "usuario estándar". de Win7 (debido a que el recuento de palabras supera las 1100 palabras, no las enumeraré todas, pero a continuación le mostraré una captura de pantalla de un programa simple en ejecución)

Aunque hay algunos consejos de compatibilidad extraños, Resulta que Visual C 6.0 es mejor en Win7 que en XP.

Tengo un conocimiento profundo de esto: cuando uso VC6 para compilar un programa en C repetidamente en XP (en una máquina física, eso). es decir, la computadora que usa habitualmente directamente), incluso si el programa es correcto, la compilación fallará no más de 15 veces y luego VC6 se "bloqueará". Pero en Win7, si usa VC6 para compilar un programa en C. repetidamente, incluso si el programa es incorrecto, VC6 no "fallará" incluso si se compila 25 veces.

Deja de hablar y ponte manos a la obra.

Hay tres cosas importantes a tener en cuenta al instalar o utilizar Visual C 6.0 en Windows 7.

1. Al instalar o utilizar Visual C 6.0, si aparece un cuadro de diálogo de compatibilidad, haga lo siguiente: marque "No volver a mostrar este mensaje" y luego seleccione "Ejecutar programa". No tengas miedo, he comprobado personalmente que no habrá "efectos secundarios".

2. Al instalar VC, seleccione "instalación personalizada":

El siguiente paso a tener en cuenta es: ¡no seleccione OLE/COM OBJECT en HERRAMIENTAS! La herramienta VIEWER se puede instalar correctamente. Además, es solo una herramienta de visualización y no afectará la compilación de VC, por lo que podrá utilizar Vista y Win7 en el futuro sin preocuparse por problemas de compatibilidad.

3. Establecer en "Herramientas - Opciones - Directorio":

A. Busque la ruta de estos recursos, por ejemplo, el mío está instalado en "D:\Program Files\ de". " , etcétera.

Nota: debe compararse con la ruta de recursos encontrada manualmente, ¡no la copie directamente!

B. La siguiente es una lista de algunas rutas de recursos:

Archivo ejecutable:

D:\Program Files\Microsoft Visual Studio\Common\MSDev98\. Bin

D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin

D.Program Files\Microsoft Visual Studio\VC98\BIN

D : \Program Files\Microsoft Visual Studio\Common\TOOLS

D:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT

Nota: Las siguientes dos rutas de recursos son opcionales Añadido:

C:\windows\system32\wbem

C:\windows\system32

C.windows/system32

Incluido archivos:

D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

D:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

Archivos de biblioteca:

D:\Program Files\Microsoft Visual Studio\VC98\LIB

D:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

archivos fuente:

D:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC

D:\Program Files\Microsoft Visual Studio\VC98\MFC\ INCLUDE

D:\Archivos de programa\Microsoft Visual Studio\VC98\ATL\INCLUDE

D:\Archivos de programa\Microsoft Visual Studio\VC98\CRT\SRC

(Es mejor que Win7 no agregue este proyecto, pero si lo instalas de acuerdo con el método que te dije, parece que no existe tal proyecto. (Es mejor que Win7 no agregue este proyecto, pero si lo instala como le dije, no parece existir, por lo que generalmente no se agregará).

Finalmente, quiero mostrarles un pequeño programa que escribí usando Visual C 6.0 en Windows 7, que establece el UAC de Win7 en el nivel más bajo y está en el entorno de "usuario estándar" de Win7.

Cuando utiliza Visual C 6.0 en Windows 7, si se encuentra en un entorno profesional como yo, o si necesita utilizar Visual C 6.0 en Windows 7 por otros motivos, es posible que desee dar ¡es un intento!