He abierto un área de trabajo anterior que es una biblioteca y su arnés de prueba. Solía funcionar bien, pero ahora no funciona y las versiones anteriores del código tampoco funcionan con los mismos errores. Intenté volver a crear el proyecto y eso causa los mismos errores también. Nada parece estar fuera de orden en la configuración del proyecto y el código generado funciona en la aplicación principal.Problemas de enlace (VC6)
He eliminado la mayoría de los archivos y lo he reducido al mínimo para generar el error. Desafortunadamente no puedo publicar el proyecto ya que esto se usa en el código de producción.
El error del enlazador LNK2001 que obtengo generalmente significa que he dejado una biblioteca u olvidado implementar una función virtual. Sin embargo, esto es parte de la biblioteca de plantillas estándar, y es un encabezado en eso.
El código que se muestra como teniendo el problema en IOCompletionPort.obj en realidad no utilizar std::string
directamente, pero que llamar a una clase que: Comms::Exception
acepta un std::string
y el valor de GetLastError
o WSAGetLastError
.
Se implementa la función mencionada en el error (GetMessage
), pero es una función virtual para que otras clases puedan anularla si es necesario. Sin embargo, parece que el compilador lo hizo como una versión de Ansi, pero no puedo encontrar ninguna opción en la configuración que controlaría eso. Sospecho que ese podría ser el problema, pero dado que hay muy pocas opciones para la biblioteca, no tengo forma de saberlo con certeza. Sin embargo, ambos proyectos especifican _MBCS en las opciones del compilador.
-------------------- Configuración: TestComms - Win32 Debug ------------------ - Vinculación ... Comms.lib (IOCompletionPort.obj) : error LNK2001: símbolo externo sin resolver "públicos: clase virtual std :: basic_string, clase std :: asignador> __thiscall Comms :: :: Excepción GetMessageA (void) const "(? GetMessageA @ Exception @ Comms @@ UBE? AV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ XZ) Debug/TestComms .exe: error fatal LNK1120: 1 elementos externos no resueltos Error al ejecutar link.exe.
TestComms.exe - 2 errores (s), 0 de aviso (s)
¿Alguna sugerencia? He perdido la mayor parte de la mañana y no quiero perder la mayor parte de la tarde también.