Problems with SMESH_MeshVSLink


I want to include the SMESH_MeshVSLink into my Visual Studio Project.


But the compiler throws an error:

error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall MeshVS_DataMapOfHArray1OfSequenceOfInteger::MeshVS_DataMapOfHArray1OfSequenceOfInteger(int)" (??0MeshVS_DataMapOfHArray1OfSequenceOfInteger@@QAE@H@Z)" in Funktion ""public: void __thiscall MeshVS_DataMapOfHArray1OfSequenceOfInteger::`default constructor closure'(void)" (??_FMeshVS_DataMapOfHArray1OfSequenceOfInteger@@QAEXXZ)".

I did nothing with the class SMESH_MeshVSLink. I just want to import.
I cant find the failure. Has anybody an idea???


Patrik Mueller's picture


have you linked "TKMeshVS.lib" to your project?



Braunstein's picture

Hi Patrik,

thank you for answering so quickly.
I was hoping that this was the fault, but unfortunately not :-( I have linked the folder (c:\opencascade6.3.0\ros\win32\lib) where the file "TKMeshVS.lib" is.

Greets, Alex

Fotis Sioutis's picture

Hi Braunstein,

This is clearly a linking problem with TKMeshVS.lib -

Make sure that the library is linked, and also make sure that you have added the library in the right configuration , or mode in your IDE.


Braunstein's picture

Indeed it was a linking problem. I only linked the folder where the TKMeshVS.lib file is stored, but i had to link the file explicitly. Anyway now it works, but i have another problem. I want to display a mesh in OCC and use the following code.

Handle( SMESH_MeshVSLink ) aDS = new SMESH_MeshVSLink( aMesh );
Handle( MeshVS_Mesh ) aMeshVS = new MeshVS_Mesh(Standard_True);
Handle( MeshVS_MeshPrsBuilder ) aPrsBuilder = new MeshVS_MeshPrsBuilder(aMeshVS, MeshVS_DMF_OCCMask, aDS, 0, MeshVS_BP_Mesh);
aMeshVS->SetDataSource( aDS );
aMeshVS->AddBuilder( aPrsBuilder, Standard_True );
aMeshVS->GetDrawer()->SetMaterial( MeshVS_DA_FrontMaterial, Graphic3d_MaterialAspect(Graphic3d_NOM_GOLD) );
Handle( AIS_InteractiveContext ) aContext = GetAISContext();
aContext->Display( aMeshVS );
aContext->Deactivate( aMeshVS );
My compiler throws an error by compiling:
Handle( AIS_InteractiveContext ) aContext = GetAISContext();

The error message is: GetAISContext()->Identifier was not found.

Has anybody an idea?



Fotis Sioutis's picture


You must replace GetAISContext() with your own Handle( AIS_InteractiveContext ) provider. I think you must first understand basics of OCC usage through the given samples and documentation, then create a skeleton application, and afterwards proceed with testing smesh.


PS: it is always good to avoid double posting :)

Braunstein's picture

You are right ;) Can you recommend me a sample or tutorial where i can learn how to create a skeleton for displaying an object in OCC?

PS: I will avoid double posting :)

Fotis Sioutis's picture

Under folder /samples/standard/qt and or /samples/standard/mfc (check mfcsample plus the subfolder you are interested in ) you can find all you may need.Take your time and investigate the sources.

Good luck