Unresolved external symbol NumericArrayResize when compiling a DLL at x64 platform using vs2005
I have a dll which is called by Labview through "Call Library Function Node". I want to port this dll to x64 platform from 32bit code which runs well at x86 computer. So, I download the Labview 8.5 evaluation version, replace the orginal referenced header file and library file in 32 bit code, such as extcode.h, fundtypes.h, labview.lib etc. Then I compile the code with Visual Studio 2005, error occurs when link "error LNK2001: unresolved external symbol NumericArrayResize". I don't know why because I really link library labview.lib. Can anyone help me?
Please check the solution in this thread, this may help you solve your problem.
http://stackoverflow.com/questions/925540/how-to-resolve-the-following-linker-errors-in-visual-studio
If you still get the same problem after try the solution, please feel free and let me know.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.
Similar Messages
-
Unresolved external symbols when building release version of DLL
I have C code which I use to build a DLL project. I have used the same code to create this DLL project in several different solutions.
I am trying to build it in a new solution, and can build the debug version, but I receive a bunch of unresolved external errors when I try to build the release version.
I have painstakingly compared the project release properties with the debug properties, and with the release properties of the same project when I have included it in other solutions. I can't find the problem.
Here are a few of the errors:
1>OLDNAMES.lib(access.obj) : error LNK2001: unresolved external symbol _access
1>Cbase_filedir.obj : error LNK2001: unresolved external symbol __imp__strchr
1>Cusage.lib(CusageWebLog.obj) : error LNK2001: unresolved external symbol __imp__strchr
1>Cbase_filedir.obj : error LNK2001: unresolved external symbol __imp__fopen
Any Suggestions?
MikeHi Mike,
Thanks for posting in MSDN forum.
1.Please check project properties->Linker->Additional dependencies has the same libs in both debug and release version. Maybe the lib you added in bebug version but not working in release version.
2.Double check there is no code in something like that #ifdebug ... #endif
3.please use the same character set in your dll or the referenced lib. Both are unicode character set or multi-Bity.
4.Please use the same Runtime library in your dll or the referenced lib. Both are C\C++->code generation->runtime library ->/MD or /MT
Above are some general scenarios, hope this helps some.
Best regards,
Shu Hu
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Unresolved external symbols when linking C++ with ni.4882.obj
Moving from 32-bit XP to Windows 7 using Microsoft Visual Studio 2008 C++. When linking with NI-488.2 version 3.0.2 I (ni4882.obj) get the following warning and errors:
1>Linking...
1>ni4882.obj : warning LNK4217: locally defined symbol _time64 imported in function time
1>ni4882.obj : error LNK2019: unresolved external symbol __imp_rand referenced in function LoadFunction
1>ni4882.obj : error LNK2019: unresolved external symbol __imp_srand referenced in function LoadFunction
1>ATP.exe : fatal error LNK1120: 2 unresolved externals
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 9.00.21022
1>Copyright (C) Microsoft Corporation. All rights reserved.
Any ideas.
Solved!
Go to Solution.Hi Guys,
I got this error too recently. Was troubling me a lot. I was using Windows 7 OS, Visual Studio 2010 compiler.
The fix for this is pretty much straight forward and solution lies in the Project settings only.
To my knowledge, with /MDd switch, it causes the compiler to place the library name MSVCRTD.lib into the .obj file.
But with /MTd switch, This option just causes the compiler to place the library name LIBCMTD.lib into the .obj file so that the linker will use LIBCMTD.lib to resolve external symbols. For details, please refer to this MSDN article:
https://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.71).aspx
Its very useful.
Also
MDd stands for Multi-threaded Debug DLL
MTd stands for Multi-threaded Debug
Thanks,
Kiran -
Hi, I have a working project that has a few classes using the NI5411 APIs and now I want to use CNiFgen classes. After adding Core Components(Advanced Analysis, Common) and NI Device Instrument Drivers(NiFgen) from the Measurement Studio Components Wizard. Even when I try to make an object of CNiFgen(CNiFgen cnf I get the following error:
--------------------Configuration: puzzle - Win32 Debug--------------------
Linking...
NiFgenInterfaceD.lib(NiFgenImpl.obj) : error LNK2001: unresolved external symbol _niFgen_SendSoftwareTrigger@4
Output/puzzle.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
puzzle.exe
- 2 error(s), 0 warning(s)
My APIs version is working fine and so are these CNiFgen classes(I have tried then for a dummy project). But, things start getting nasty when I try to integrate them.
Regards,
Vaibhav.It looks like you have a typical linking error in VC++. Have you made sure that all of the necessary .lib files are properly linked to?
Also, are you passing any data between your custom classes and the niFGEN classes? These will take different data types unless you have already type cast all of them to work properly together. If they don't share variables, you should be okay.
Jack Arnold
Application Engineer
National Instruments -
LNK2019: unresolved external symbol errors.
I am new to JNI and I am experimenting with a C library we have. I could compile the java code and create the .h header file. When I tried to compile the .c file and generate a .dll file, i get the following link errors.
cl -I:C:\projects\NewLogon -LD Logon.c -Felogon.dll -link /LIBPATH:"C:\projects\NewLogon\lib\"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
Logon.c
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:logon.lib
/out:logon.dll
/LIBPATH:C:\projects\NewLogon\lib
Logon.obj
Creating library logon.lib and object logon.exp
Logon.obj : error LNK2019: unresolved external symbol SAPIHandleRelease referenced in function Java_Logon_logon@8
Logon.obj : error LNK2019: unresolved external symbol SAPILogon referenced in function Java_Logon_logon@8
Logon.obj : error LNK2019: unresolved external symbol SAPIHandleAcquire referenced in function Java_Logon_logon@8
Logon.obj : error LNK2019: unresolved external symbol SAPIExtendedLastErrorGetreferenced in function Java_Logon_logon@8
Logon.obj : error LNK2019: unresolved external symbol _SAPIInit referenced in fu
nction JavaLogon_logon@8
logon.dll : fatal error LNK1120: 5 unresolved externals
I hope the syntax of the command is correct, if not, please let me know. All the unresolved methods are supposed to be in the library files (.lib) located in the "NewLogon\lib" folder. I am not positive about that assumption, is there a way to look at a .lib file and make sure that the methods are defined correctly?
Any help is greatly appreciated and thanks in advance.
HugoI am having the same errors, can anyone provide some help with this?
-
Ucbhook Linking error when compiling simucb.dll
I'm trying to compile a simucb.dll and one of the linking errors is "ucbhook.obj : error LNK2001: unresolved external symbol _gstdwrt". Since ucbhook.c is generated automatically by MarixX and it presumably knows what it is doing, I'm guessing that I haven't included the library that defines gstdwrt in my C++ project. Does anyone know what this library is and where I should look for it? Thanks!
EricThanks for the reply. My first question is: What is an Sa_user.cmd file and what's it look like? Is it like a makefile?
I'm compiling an ugly mixture of C and legacy Fortran code. There is a user code block written in C (which the ucbhook function calls) which calls a Fortran function which then calls other Fortran functions. I don't know what that may do to the complexity of Sa_user.cmd. Currently, I'm learning how to use Microsoft Visual C++ to compile and link all my disparate files into a simucb.dll and I'm mired in the linking errors. Once I have the simucb.dll, I'm gonna stick that in my project directory and let MatrixX do its thing. -
I'm running on Microsoft Vista using VisualStudio 2008 to create a C++ program that starts a Java process through JNI. I'm using jdk1.6.0_13 which is currently the only JDK on my machine. I started with a very basic program to just boot strap the project, and immediately ran into an issue. I'm linking with the jvm.lib in the JDK lib directory, but I seem to still be missing the import reference for JNI_JavaCreateVM. Any idea why the linker can't pick up the reference?
// Test2JNI.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <jni.h>
int _tmain(int argc, _TCHAR* argv[])
JavaVM *jvm = NULL; /* denotes a Java VM */
JNIEnv *env = NULL; /* pointer to native method interface */
JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
JavaVMOption* options = new JavaVMOption[1];
options[0].optionString = "-Djava.class.path=lib/maxwell.jar";
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = options;
vm_args.ignoreUnrecognized = false;
/* load and initialize a Java VM, return a JNI interface
* pointer in env */
jint result = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
delete[] options;
/* invoke the Main.test method using the JNI */
jclass cls = env->FindClass("com.zenmonics.maxwell.Maxwell");
jmethodID mid = env->GetStaticMethodID(cls, "main", "([Ljava.lang.String)V");
env->CallStaticVoidMethod(cls, mid, 100);
/* We are done. */
jvm->DestroyJavaVM();
return 0;
Error
1>------ Build started: Project: Test2JNI, Configuration: Debug Win32 ------
1>Linking...
1>Test2JNI.obj : error LNK2019: unresolved external symbol __imp__JNI_CreateJavaVM@12 referenced in function _wmain
1>C:\Users\Owner\Business\Engagements\Zenmonics\Test2JNI\Debug\Test2JNI.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\Owner\Business\Engagements\Zenmonics\Test2JNI\Debug\BuildLog.htm"
1>Test2JNI - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Link Line =
/OUT:"C:\Users\Owner\Business\Engagements\Zenmonics\Test2JNI\Debug\Test2JNI.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C:\Program Files\Java\jdk1.6.0_13\lib" /MANIFEST /MANIFESTFILE:"Debug\Test2JNI.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Owner\Business\Engagements\Zenmonics\Test2JNI\Debug\Test2JNI.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT jvm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.libHI,
I am facing the same problem.
Still you can look at my output
I look for Dir structure. Declared all Env Variables too. And yes I also specified the jvm.dll for it. But still error remains same.
C:\Program Files\xerox\practice\devprac>"c:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.exe" -I"C:\Program Files\Microsoft Visual Studio 8\VC\include" -Ic:\Softwares\JDeveloper\jdk\include -Ic:\Softwares\JDeveloper\jdk\include\win32 -I"C:\Program Files\Microsoft Visual Studio 8\VC\lib" -IC:\Softwares\JDeveloper\jdk\jre\bin\server\jvm.dll -LD devprac_Use5.c -Fedevprac_Use5.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
devprac_Use5.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:devprac_Use5.lib
/out:devprac_Use5.exe
devprac_Use5.obj
devprac_Use5.obj : error LNK2019: unresolved external symbol __imp__JNI_CreateJa
vaVM@12 referenced in function _main
devprac_Use5.exe : fatal error LNK1120: 1 unresolved externals -
Unresolved external symbol _sqlcxt
hello
i was trying to compile Pro*C program on windows 7 professional 64 bit with visual studio, and I get the following error while linking library. Please help!
envionment:
windows 7 professional 64 bit
Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)
visual studio(i tried both 2005 and 2008)
error LNK2019: unresolved external symbol _sqlcxt referenced in function.
error LNK2019: unresolved external symbol _sqlglm referenced in function.
the program was compiled and worked on windows xp/oracle 9/visual studio 2005 just fine.
Thanks in advance.
Ivantry this:
in the IDE go to project properties, configuration manager and create a new config for 64bit platform - I had exaqctly the same issue when porting existing code that runs fine using 10g lib but wouldn't find sqlcxt using 11g lib under win7 64 and vs2010 - changing platform to 64bit fixed it for me -
Unresolved external symbol _sqlglm
Hi all
I'm having trouble using Pro*C. I precompile the .pc file without problems but when I try to make the c file I get the error below:
ora2c.obj : error LNK2019: unresolved external symbol sqlglm referenced in function sql_error
ora2c.obj : error LNK2019: unresolved external symbol sqlgls referenced in function sql_error
I have included sqlcpr.h in the code and it is in the directory I run the compile commands from.
I think I am missing some libraries in my makefile?
My makefile currently contains
ORACLELIBS = C:\Oracle\product\10.1.0\Client\oci\lib\msvc\oci.lib
link $(LFLAGS) -out:$*.exe $*.obj $(OBJS) $(ORACLELIBS)
link $(LFLAGS) -out:$*.exe $*.obj C:\Oracle\product\10.1.0\Client\precomp\lib\oraSQL10.LIB
link $(LFLAGS) -out:$*.exe $*.obj C:\Oracle\product\10.1.0\Client\precomp\lib\msvc\oraSQX10.LIB
Could anyone tell me if there is another lib I need to include?
Thanks in advance!Hi,
orasql10.lib is what you want:
C:\oracle\10.2\database\precomp\LIB>dumpbin /exports orasql10.lib | findstr /c:"sqlglm"
sqlglm
sqlglmt
What's up with the 3 different link lines?
Regards,
Mark -
Error 106 error LNK2019: unresolved external symbol
Hi there,
I'm trying to instantiate a Factory object to then get a SchemaValidator from createSchemaValidator in C++.
Here's the code snippet:
Tools::Factory<?, Element> *myFactory = new Tools::Factory<? ,Element>();
SchemaValidator<Element> *mySchemaValidator = myFactory->createSchemaValidator(SchValidatorIdType::SchValCXml, NULL);
Basically, I can't seem to find the right template argument which is supposed to be of type "Context" but I can't figure it out. I tried using "xmlctx" but that leads to the following compiling error:
Error 106 error LNK2019: unresolved external symbol "public: class OracleXml::Parser::SchemaValidator<class Element> * __thiscall OracleXml::Tools::Factory<struct xmlctx,class Element>::createSchemaValidator(enum OracleXml::Parser::SchValidatorIdType,struct xmlctx *)" (?createSchemaValidator@?$Factory@Uxmlctx@@VElement@@@Tools@OracleXml@@QAEPAV?$SchemaValidator@VElement@@@Parser@3@W4SchValidatorIdType@53@PAUxmlctx@@@Z) referenced in function _main TestCppXDK1.obj
I verified I linked my project to oraxml10.lib.
Help?
Thanks!yeah I checked it but it was set as you said. another interesting thing is I can access "pi" variable in math library. ex:
double a= NI :: CNiMath :: Pi;
but when I use
NI::CNiMath::FFT(fftData,imgData);
I get these errors
mfc3 error LNK2019: unresolved external symbol "public: int __thiscall NI::CniDemo::Access(void)" (?Access@CniDemo@NI@@QAEHXZ) referenced in function "public: static enum NI::MathError __cdecl NI::CNiMath::FFT(class NI::CNiComplexVector &)" (?FFT@CNiMath@NI@@SA?AW4MathError@2@AAV?$CNiComplexVector@N@2@@Z)
mfc3 error LNK2019: unresolved external symbol "class std::auto_ptr NI::global_demo" (?global_demo@NI@@3V?$auto_ptr@VCniDemo@NI@@@std@@A) referenced in function "public: static enum NI::MathError __cdecl NI::CNiMath::FFT(class NI::CNiComplexVector &)" (?FFT@CNiMath@NI@@SA?AW4MathError@2@AAV?$CNiComplexVector@N@2@@Z)Message Edited by alperkal on 12-16-2005 06:00 AM -
Hi, i'm still newbie with Oracle 10g and VC8. The problem is i found this LNK2019 error when build my project. Here the steps i take when run VC8 for the first time:
(1). In PROJECT->PROPERTIES->CONFIGURATION PROPERTIES->C/C++->ADDITIONAL INCLUDE, i add the "C:\oracle\product\10.1.0\db_1\OCI\include"
(2). In PROJECT->PROPERTIES->CONFIGURATION PROPERTIES->LINKERS->ADDITIONAL LIBRARY, i add the c:\oracle\product\10.1.0\db_1\OCI\lib\MSVC\vc8 (i've downloaded the OCI for vc8)
(3). I make new project with 1 cpp page with this code:
#include <iostream>
#include <occi.h>
using namespace oracle::occi;
using namespace std;
int main (void)
Environment *env = Environment::createEnvironment();
(4).I compiled this code and succedded
(5).I build this code and i get this error:
------ Build started: Project: Example, Configuration: Debug Win32 ------
Linking...
ok.obj : error LNK2019: unresolved external symbol "public: static class
oracle::occi::Environment * __cdecl oracle::occi::Environment::createEnvironment(enum oracle::occi::Environment::Mode,void *,void * (__cdecl*)(void *,unsigned int),void * (__cdecl*)(void *,void *,unsigned int),void (__cdecl*)(void *,void *))" (?createEnvironment@Environment@occi@oracle@@SAPAV123@W4Mode@123@PAXP6APAX1I@ZP6APAX11I@ZP6AX11@Z@Z) referenced in function _main
C:\Documents and Settings\Frederick\Example\Debug\Example.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://C:\Documents and Settings\Frederick\Example\Example\Debug\BuildLog.htm"
Example - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I've tried everything i know. If someone have experienced this error, please let me know the solution. Thanks in advance...
Frederick AI'm not very new to C++, but I'm new to Visual Studio and working with C++ in MS environment. I'm experiencing the same problem using
Studio 2010 Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft Visual C++ 2010 01021-532-2002102-70432
Microsoft Visual C++ 2010
On a Windows 7 Professional 64 bit OS connecting to a 11gR2 (64) database on the same system
I've performed the exact steps in this post and I still receive the link error after performing all the steps identified with the exception that I performed them with respect to the 11gR2 libs & I'm using the libs / includes from this database's home.
I'm sure that I'm missing something trivial, but I'm at a loss to determine what it is. Your assistance in these matters is greatly appreciated. -
LNK2019: unresolved external symbol _RfcOpenEx
Hi,
i downloaded the SAP RFC SDK 7.20 unicode (Windows Server on IA32 32bit)
opened VisualStudio 2010
created new MFC dialog based project
added additional include directories (linked to SDK folder)
added additional library folders (also linked to SDK directory)
added librfc32u.lib;libsapucum.lib as additional dependency
added #include "saprfc.h"
put some code into the project
void CsaprfcsdkDlg::OnBnClickedButton1()
RFC_HANDLE rfc_handle;
RFC_ERROR_INFO_EX rfc_err_inf_ex;
rfc_handle = RfcOpenEx("",&rfc_err_inf_ex);
and tried to compile ... the result is an error that the external symbol RfcOpenEx is unresolved.
1>------ Build started: Project: saprfcsdk, Configuration: Debug Win32 -
1> saprfcsdkDlg.cpp
1>saprfcsdkDlg.obj : error LNK2019: unresolved external symbol _RfcOpenEx@8 referenced in function "public: void __thiscall CsaprfcsdkDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CsaprfcsdkDlg@@QAEXXZ)
1>...\saprfcsdk\Debug\saprfcsdk.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Anyone has an idea what i am doing wrong ?
I have a Win7 64Bit running but i also tried it on VS2003 and WinXP ... but got the same error.
Thanks for your hints.Hey Bernhard,
i made a test and this test was successful. It is more or less a workaround but maybe it helps.
I used the non unicode SDK and opened a RFC connection, called a self written function to retrieve data.
After calling the RfcCallReceiveEx i made a MultibyteToWideChar to convert all the received stuff to utf-8.
Before the conversion i got this:
el. Nr.: 00xxxxxxxxxxx
*Person:
Herr Frank é«u02DCæu2013°åu0152ºæ¨ªå±±è·¯106å· Wüldemann
*Firma:
CRM-TEST Name 2
64293 Darmstadt
DE
*Extras:
Rating: Ba
Firma-Nr.: 0003010048
Person-Nr: 0003010069
After the conversion i got this : (don't wonder first name is a test with asian characters)
http://www.l2server.de/unicode.jpg
I would imagine when you make an Widechartomultibyte before sending information to the SAP system you could receive the correct input also.
Maybe this will help you to.
Regards Frank
snip code ***
CString CCTICallHandler::ReadDataFromSAP(CString sANum, CString sHost, CString sSysNr, CString sUser, CString sPwd)
try
if(sHost==_T("") || sSysNr==_T("") || sUser==_T("") || sPwd==_T(""))
return _T("");
RFC_HANDLE rfc_handle;
RFC_ERROR_INFO_EX rfc_err_inf_ex;
CString sConnStr;
sConnStr.Format(_T("ASHOST=%s CLIENT=100 USER=%s PASSWD=%s LANG=E SYSNR=%s TRACE=0"),sHost,sUser,sPwd,sSysNr);
rfc_char_t * conn_str = (rfc_char_t*)malloc(sConnStr.GetLength()+1);
WideCharToMultiByte(CP_ACP,0,sConnStr,sConnStr.GetLength()1,conn_str,sConnStr.GetLength()1,"",FALSE);
rfc_handle = RfcOpenEx(conn_str,&rfc_err_inf_ex);
if(rfc_handle != 0)
rfc_char_t function_name[] = "Z_HBM_CTI_FIND_BP_BY_NUMBER";
rfc_char_t * exception = NULL;
RFC_RC rfc_rc;
char * chANum = (char*)malloc(sANum.GetLength()+1);
int sz = sANum.GetLength() + 1;
WideCharToMultiByte(CP_ACP,0,sANum,sz,chANum,sz,"",FALSE);
RFC_PARAMETER importing[2],exporting[2];
RFC_STRING value1 = (RFC_STRING)chANum;//m_sANumber;
RFC_STRING value2;
exporting[0].name = "TEL_NUMBER";
exporting[0].nlen = strlen (exporting[0]. name);
exporting[0].type = RFCTYPE_STRING;
exporting[0].addr = &value1;
exporting[0].leng = sizeof(value1);
exporting[1].name = NULL;
importing[0].name = "RESULT";
importing[0].nlen = strlen(importing[0].name);
importing[0].addr = &value2;
importing[0].type = RFCTYPE_STRING;
importing[1].name = NULL;
rfc_rc = RfcCallReceiveEx(rfc_handle, function_name, exporting, importing, NULL, NULL ,&exception);
RfcClose(rfc_handle);
free(chANum);
free(conn_str);
CString sRetVal;
MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)value2,-1, sRetVal.GetBuffer(strlen((const char *)value2)), strlen((const char *)value2));
sRetVal.ReleaseBuffer(strlen((const char *)value2));
return sRetVal;
else
return _T("Connection to CRM failed.");
CRML_CATCH_UNI_RET_EMPTY
snip code end *** -
I attempt to load an existing XML file and edit it with Microsoft Visual Studio 2008. Once I add the following function, I get the error LNK2019.
CVIXMLDocument doc = 0;
CVIXMLLoadDocument ("c:\\Temp\\AppTestCmd.xml", &doc);
1>01_cpp_list.obj : error LNK2019: unresolved external symbol _CVIXMLLoadDocument@8 referenced in function _main
1>C:\sc\practice\01_cpp_list\Debug\01_cpp_list.exe : fatal error LNK1120: 1 unresolved externals
I try to add the files and lib mentioned in the following link, but they do not help.
http://forums.ni.com/t5/LabWindows-CVI/unresolved-external-symbol-MSXML-IXMLxxx/m-p/1127380/highligh...
How can I fix it? Thanks!
Here is the code piece. I have only one file in my MSVS project.
============================================================
#include <iostream>
#include <cvixml.h>
#include <msxmldom.h>
#include <cvirte.h> // NI CVI
#include <userint.h> // NI CVI
#include <utility.h>
using namespace std;
int main ()
CVIXMLDocument doc = 0;
CVIXMLLoadDocument ("c:\\Temp\\AppTestCmd.xml", &doc);
return 0;
Solved!
Go to Solution.Hi,
The link to the following include path has been added by two ways in Microsoft Visual Studio 2008.
C:\Program Files (x86)\National Instruments\CVI2013\toolslib\toolbox
(1) [menu bar, Tools -> Options -> Projects and Solutions -> VC++ Directories -> Include files
(2) [menu bar, Project -> Configuration Properties -> C/C++ -> General -> Additional Include Directories
"cvisupp.lib" and "cviwmain.lib" are added to linker input. I cannot find this one in my NI folders "cvirte.dll".
In my MSVS project, add "cvixml.c" to the Source Files folder and "cvixml.obj" to the Resource Files folder.
With the above settings, it ends up with the following compilation error.
If we roll back to the initial code in the beginning of this discussion thread, we probably just miss one lib file or a few which contains CVIWindows XML function tree.
=========================================================
1>------ Build started: Project: 01_cpp_list, Configuration: Debug Win32 ------
1>Compiling...
1>01_ni_xml.cpp
1>cvixml.c
1>c:\sc2\01_practice_template\01_cpp_list\cvixml.c(153) : error C2440: '=' : cannot convert from 'void *' to 'char *'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
1>c:\sc2\01_practice_template\01_cpp_list\cvixml.c(308) : error C2440: '=' : cannot convert from 'void *' to 'char *'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
1>c:\sc2\01_practice_template\01_cpp_list\cvixml.c(1488) : error C2664: 'MSXML_IXMLDOMNamedNodeMapGetlength' : cannot convert parameter 3 from 'int *' to 'long *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\sc2\01_practice_template\01_cpp_list\cvixml.c(1534) : error C2664: 'MSXML_IXMLDOMNamedNodeMapGetlength' : cannot convert parameter 3 from 'int *' to 'long *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>Generating Code...
1>Build log was saved at "file://c:\sc2\01_practice_template\01_cpp_list\01_cpp_list\Debug\BuildLog.htm"
1>01_cpp_list - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========= -
Error LNK2019: unresolved external symbol GetBestRoute
Hi all, a C++ beginner here. Basically I am trying to see if my network devices are connected to a specific ip address, without actually using sockets or the connect() function (due to project rules), and after thats done, I retrieve the MAC address
of the device that is currently being connected.
However I got this error while compiling my code.
1>ATLProject1.obj : error LNK2019: unresolved external symbol _GetBestRoute@12 referenced in function "bool __cdecl getMacAddress(unsigned long)" (?getMacAddress@@YA_NK@Z)
#include "stdafx.h"
#include "resource.h"
#include "ATLProject1_i.h"
#include "Iphlpapi.h"
using namespace ATL;
class CATLProject1Module : public ATL::CAtlServiceModuleT< CATLProject1Module, IDS_SERVICENAME >
public :
DECLARE_LIBID(LIBID_ATLProject1Lib)
DECLARE_REGISTRY_APPID_RESOURCEID(IDR_ATLPROJECT1, "{4C585367-A6D5-453D-AA45-3DC868030901}")
HRESULT InitializeSecurity() throw()
// TODO: CoInitializeSecurity を呼び出し、サービスのための適切なセキュリティ設定を指定します
// 推奨 - PKT レベルの認証、
// RPC_C_IMP_LEVEL_IDENTIFY の偽装レベル、
// および適切な非 NULL セキュリティ記述子。
return S_OK;
CATLProject1Module _AtlModule;
bool getMacAddress(IPAddr managercom)
bool connection = false;
PMIB_IPFORWARDROW routept = (PMIB_IPFORWARDROW)malloc(sizeof(MIB_IPFORWARDROW));;
GetBestRoute(managercom,0,routept);
//retrieving MAC address code will be added later
return connection;
int main(int argc, char *argv[])
getMacAddress(INADDR_ANY);
extern "C" int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
LPTSTR /*lpCmdLine*/, int nShowCmd)
return _AtlModule.WinMain(nShowCmd);
Am I lacking something or are there some bad settings in my project?
I am using Windows 7 and Visual Studio 2013, and created my code in ATL project.
Any help and comments are appreciated. Thank you!!!Hi MrCapybara,
Since you got this issue when compiling my code which seems that this issue is related to your project, and this forum is to discuss and ask questions about the
Visual Studio Debugging tools, Visual Studio Profiler tools, and Visual Studio Ultimate IntelliTrace.
For development issue about C++, I would recommend you post it in C++ forum to get dedicated supports, you could post another thread there.
Regards.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Stubborn Unresolved External Symbol Problem.
Hello Folks:
Developing on Win8.1 Pro, Visual Studio 2010, C++, WIN32 no MFC.
Here is a weird one. I must be doing something really stupid.
I've been adding code to a massive project for years. It was 100,000 lines of code when I checked a couple of years ago, and is growing.
The application's static library has over 200 ".cpp" source files, not counting the headers. It also relies upon a similar number of source modules from static libraries used by other applications.
Yesterday builds started generating this error, formatted to make it easier to understand:
3>tfa.obj : error LNK2019: unresolved external symbol "
bool __cdecl run_contact_import_from_menu(
struct HWND__ *,
struct HWND__ *,
class PROCESS_RECORD *,
class TFA_THREAD_CRYPTO_RECORD *,
class TFA_THREAD_CRYPTO_RECORD *,
class botan_utilities::EAX_CTR_THREAD_CRYPTO_RECORD *,
class TFA_MAIN_WINDOW_CONTEXT *,
class std::basic_string<char,
struct std::char_traits<char>,
class std::allocator<char> > *)"
I tried a few things. When I commented out the call to run_contact_import_from_menu() the application built without a problem.
I wasn't even working on that part of the application.
The usual solution:
I've seen unresolved external symbol errors before of course. It usually means I've changed the function's arguments without updating the function's forward declaration in a header, and I haven't updated a call to the function elsewhere
in the code. The first thing I did was copy the interface from the function's definition in a "cpp" file:
bool run_contact_import_from_menu(HWND hdlg,
HWND change_alert_source_window_handle,
PROCESS_RECORD *process_record_ptr,
TFA_THREAD_CRYPTO_RECORD *tfa_thread_crypto_ptr,
TFA_THREAD_CRYPTO_RECORD *tfa_thread_financial_crypto_ptr,
EMAIL_THREAD_CRYPTO_RECORD *tfa_thread_email_crypto_record_ptr,
TFA_MAIN_WINDOW_CONTEXT *main_window_dialog_context_ptr,
std::string *message_string_ptr)
replaced it in the header file, and added a ";" to make it a forward declaration.
Same error.
EMAIL_THREAD_CRYPTO_RECORD is botan_utilities::EAX_CTR_THREAD_CRYPTO_RECORD:
From the email thread's header:
typedef botan_utilities::EAX_CTR_THREAD_CRYPTO_RECORD EMAIL_THREAD_CRYPTO_RECORD;
For testing, I slapped that typedef in front of the function's forward declaration and the function's definition. Compiles fine, same link error.
This seems to be the only unresolved external
After #ifdef-ing out the call to this function, this application with it's thousands of calls to thousands of different functions built just fine, and ran as expected.
Is the module's C++ file being processed?
This function isn't being found in tfa_contact_import.cpp, where it lives. What happens when I comment out other function definitions in this C++ file?
Now I get a whole bunch of "error LNK2019: unresolved external symbol" errors. Other functions in that file are being referenced, and found. And missed if they are absent.
Is it positional? run_contact_import_from_menu() is the first function defined in the file. Moving it to the end of the file gets me the same error.
I create a new C++ file with the "Add New Item" to the app's library, just for this function. Same error.
I change the function's name to "run_contact_import_from_menu_x". New name, same error.
I'm missing something really basic, really obvious. Can someone tell me what it is?
Thanks
LarryThanks Igor:
For some reason my first reply to your post went missing.
No problem. I didn't understand the dumpbin options when I posted it.
So now I have an output of dumpbin run with the /SYMBOLS option.
It's pages and pages of stuff. The decorated names I've seen so far seem to be the function names followed by "@" signs and other text, so I think I can identify the functions.
The unresolved external function name, "run_contact_import_from_menu" is nowhere to be found in any text of the dumpbin output. The second function in the source, "populate_individual_contact_import_vector" can be found
at 9 places in the output, as part of these decorated names.
Another function in the same .cpp file was also represented in the dumpbin output.
I have some obligations tonight. Tomorrow, Saturday, I'll try to create a stripped down version of the C++ file that I can present as both a source and dumpbin output in a form small enough to show here. I don't know enough
about dumpbin to predict how successful that effort will be, but I can snip the source to the function interface definitions and return values.
Thanks
Larry
Maybe you are looking for
-
Problems in compatibility of iPod radio remote with iPod classic 160 GB
Hi all, I have just bought a iPod classic 160 GB and want to buy a iPod radio remote as well. However, after I have done my research, I find the radio remote is not compatible with iPod classic perfectly- Do you think it is a good idea for me to wait
-
I know that a lot of Arch Linuxers use MPD. Have any of you had any success getting MPD (or GPMC) to actually use the "ARTISTSORT" tag? I've been struggling with getting it to work. It looks like support for it was added in version 0.16 (Changelog
-
This program is used to convert NON open item mangaed accounts to open item managed accounts. While executing this program I am getting message "please do not use this program". Can some one helpme on this
-
Email Notifications on Prime Infrastructure 2.1
Hi Everyone, I have a Cisco Prime Infrastructure 2.1 with almost 100 switches registered and managed properly. I have configured the Mail Server and alarm notifications are sent with no problems. The deal is that I don´t want to recieve alarm mails f
-
I am new to creating reports from JDBC and Java. I am creating a web frontend to a database and want to allow users to load reports based on data from the database, which I access using JDBC and MyBatis. Is there a good, hopefully free, Java tool tha