MFC: CString y el error LNK2019

Este error se manifiesta como "unresolved external symbol", lo cual nos puede llevar a pensar que nos falta definir una función, o que no linkeamos correctamente.

Lo que ocurría en mi caso era que estaba usando la clase CString, que es un template, cosa que no sabía. Aún más: su definición depende de si se usa ATL o no, o si el proyecto está configurado para usar caracteres Unicode o ANSI.

En mi caso particular, estaba llamando a un método de otra dll, configurada con ANSI, desde una configurada con Unicode. Por ende, las definiciones de CString no coincidían, para el compilador eran dos tipos diferentes.

Por lo tanto, la solución fue ir a mi proyecto desde el Solution Explorer del Visual Studio, click derecho->Properties->General->Project Defaults->Character Set, y en ese combo box, setear Unicode.

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x