[Insight-users] (update) how to create ITK dll with visual c++ 6.0?

Haris Saybasili haris.saybasili at gmail.com
Mon May 1 06:32:23 EDT 2006


Hi,

I tried cmake, it created the project. However, Visual C++ couldn't compile
it. I had 44 errors, all of which was unresolved references. I added
additional lib and include libraries to the project, but no luck. I exported
the makefile, and edited it. I get the same error as always:

.................
    Searching C:\ITK\bin\bin\Debug\itksys.lib:
    Searching C:\MSVStudio6\VC98\lib\kernel32.lib:
    Searching C:\MSVStudio6\VC98\lib\user32.lib:
    Searching C:\MSVStudio6\VC98\lib\gdi32.lib:
    Searching C:\MSVStudio6\VC98\lib\winspool.lib:
    Searching C:\MSVStudio6\VC98\lib\comdlg32.lib:
    Searching C:\MSVStudio6\VC98\lib\advapi32.lib:
    Searching C:\MSVStudio6\VC98\lib\shell32.lib:
    Searching C:\MSVStudio6\VC98\lib\ole32.lib:
    Searching C:\MSVStudio6\VC98\lib\oleaut32.lib:
    Searching C:\MSVStudio6\VC98\lib\uuid.lib:
    Searching C:\MSVStudio6\VC98\lib\odbc32.lib:
    Searching C:\MSVStudio6\VC98\lib\odbccp32.lib:
    Searching C:\MSVStudio6\VC98\lib\msvcrtd.lib:
    Searching C:\ITK\bin\bin\Debug\ITKAlgorithms.lib:
    Searching C:\ITK\bin\bin\Debug\ITKBasicFilters.lib:
    Searching C:\ITK\bin\bin\Debug\ITKCommon.lib:
    Searching C:\ITK\bin\bin\Debug\ITKDICOMParser.lib:
    Searching C:\ITK\bin\bin\Debug\ITKEXPAT.lib:
    Searching C:\ITK\bin\bin\Debug\ITKFEM.lib:
    Searching C:\ITK\bin\bin\Debug\itkgdcm.lib:
    Searching C:\ITK\bin\bin\Debug\ITKIO.lib:
    Searching C:\ITK\bin\bin\Debug\itkjpeg8.lib:
    Searching C:\ITK\bin\bin\Debug\itkjpeg12.lib:
    Searching C:\ITK\bin\bin\Debug\itkjpeg16.lib:
    Searching C:\ITK\bin\bin\Debug\ITKMetaIO.lib:
    Searching C:\ITK\bin\bin\Debug\itknetlib.lib:
    Searching C:\ITK\bin\bin\Debug\ITKniftiio.lib:
    Searching C:\ITK\bin\bin\Debug\ITKNrrdIO.lib:
    Searching C:\ITK\bin\bin\Debug\ITKNumerics.lib:
    Searching C:\ITK\bin\bin\Debug\itkpng.lib:
    Searching C:\ITK\bin\bin\Debug\ITKSpatialObject.lib:
    Searching C:\ITK\bin\bin\Debug\ITKStatistics.lib:
    Searching C:\ITK\bin\bin\Debug\itktestlib.lib:
    Searching C:\ITK\bin\bin\Debug\itktiff.lib:
    Searching C:\ITK\bin\bin\Debug\itkvcl.lib:
    Searching C:\ITK\bin\bin\Debug\itkvnl.lib:
    Searching C:\ITK\bin\bin\Debug\itkvnl_algo.lib:
    Searching C:\ITK\bin\bin\Debug\itkvnl_inst.lib:
    Searching C:\ITK\bin\bin\Debug\itkzlib.lib:
    Searching C:\ITK\bin\bin\Debug\ITKznz.lib:
    Searching C:\MSVStudio6\VC98\lib\OLDNAMES.lib:
    Searching C:\MSVStudio6\VC98\lib\msvcprtd.lib:
    Searching C:\ITK\bin\bin\Debug\itksys.lib:
    Searching C:\MSVStudio6\VC98\lib\kernel32.lib:
    Searching C:\MSVStudio6\VC98\lib\user32.lib:
Done Searching Libraries
myitk.obj : error LNK2001: unresolved external symbol "class
std::basic_ostream<char,struct std::char_traits<char> > std::cout"
(?cout at std@@3V?$basic_ostream at DU?$char_traits at D@std@@@1 at A)
myitk.obj : error LNK2001: unresolved external symbol "__int64 const
std::_Fpz" (?_Fpz at std@@3_JB)
myitk.obj : error LNK2001: unresolved external symbol "private: static class
std::locale::_Locimp * std::locale::_Locimp::_Global" (?_Global at _Locimp@
locale at std@@0PAV123 at A)
myitk.obj : error LNK2001: unresolved external symbol "private: static int
std::locale::id::_Id_cnt" (?_Id_cnt at id@locale at std@@0HA)
.\Debug\myitk.dll : fatal error LNK1120: 4 unresolved externals


I had searched the net, and saw that these kind of errors are very common to
vc++ 6.0. Is there anybody who succeded in creating an ITK DLL with msvc++
6.0?

I am new to windows application development (I use linux normally), so maybe
I made a very elemental error.

Thanks,

haris

PS: And for the DLL part, my code was like this:

----------------
1. myitk.h:
----------------

#ifndef __HELLO_H
#define __HELLO_H
#ifndef __HELLO__
#define __HELLOLIB__ __declspec(dllimport)
#else
#define __HELLOLIB__ __declspec(dllexport)
#endif
__HELLOLIB__ int myitkhello() ;
#endif

#include "C:\ITK\src\Code\Common\itkWin32Header.h"
#include "itkImage.h"


class myitk
{
  public:

      myitk();

      ~myitk();

};

----------------
myitk.cpp:
----------------

#define __HELLO__
#include "myitk.h"

myitk::myitk() {


    typedef itk::Image< unsigned short, 3 > ImageType;

    ImageType::Pointer image = ImageType::New();
    std::cout << "ITK Hello World !" << std::endl;
    FILE *f;
    f = fopen("c:/temp/itk.txt","w");
    fprintf(f,"itk : hello world!!!\n");
    fclose(f);

}


myitk::~myitk()
{

}

__HELLOLIB__ int myitkhello() {

    myitk mtk();
    return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20060501/1fb46ed2/attachment.html


More information about the Insight-users mailing list