Vinculador LNK2019 error de nuevo a un __stdcall creo que tengo el derecho lib trazó - ¿qué puedo hacer para resolver esto?

StackOverflow https://stackoverflow.com/questions/4459369

Pregunta

Trato de puerto de un LabCVI Projekt a MSVS 2010 C ++ Express. Hay una línea de código wich se lee como sigue:

if (InitCVIRTE == 0) return 0;

se produce un enlazador de error: LNK2019 "_InitCVIRTEEx @ 12" - todos encabezado correspondiente ya cuentan con las declaraciones del CPP:

#ifdef __cplusplus 
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif

Me trazó la parte posterior de error de estos fragmentos, que se combinaron para usted:

#define CVIFUNC __stdcall
int CVIFUNC InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);
#define InitCVIRTE InitCVIRTEEx

Para resumir esto:

int __stdcall InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);

Esta llamada debe ser definida en el cvirt.lib -. Wich se añade a los Librarypaths (CVI2009 \ extlib \ msvc) El error de vinculador se sigue produciendo y apenas no entiendo por qué

Debería el lib añadirse de una manera diferente? ¿Cómo se puede verificar si este es realmente el lib ¿verdad? ¿El error medio algo completamente diferente?

¿Fue útil?

Solución

Es necesario decirle al enlazador lo que las bibliotecas de enlace. La ruta de búsqueda sólo se le dirá al enlazador dónde encontrar esas bibliotecas.

es decir:

Linker Libraries:
 - a.lib
 - b.lib

Linker Search Dirs:
 C:\project_a\lib
 C:\project_b\lib

enlazador buscará ambas carpetas para A.lib y b.lib pero no vinculará ninguna biblioteca que ya no haya sido dicho.

Otros consejos

De alguna manera simplemente resolvió - he añadido cvirt.lib y cvisupp.lib direktly al proyecto. El error se ha ido ahora ...

Sin embargo, todavía no estoy satisfecho porque ya di el proyecto de la ruta en la que se debe buscar bibliotecas. Voy a añadir otra pregunta a stackoverflow preguntando cuál es la diferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top