Thu, 05/09/2013 - 17:20
Hello,
I am converting an app from OCC6.3 to OCC6.6.
I have recompiled all the OCC sources and my app with VS2010 using the msvc.bat file provided.
I have a compilation problem using the DrawText method of the Visual3D_Layer class.
When I try to use the original code
myLayer->DrawText("any text",anyX,anyY,anyH);
I get a compiler error the tell me that there is no method "DrawText" for that class.
In the methods list I can see an "DrawTextA" method; Using this method I can compile the source code but I get a linker error that reports that there is no DrawtextA method fro the class Visual3D_Layer.
Introducing a remark to this line the app can be linked and seem works correctly. (without the text)
I am compiling my code with MultiByte option.
Have anyone a suggestion ?
Thu, 05/09/2013 - 17:26
Hello Marco,
for me the method DrawText has always work, no compiler error, I currently use OCC Release 6.5.4.
Francois.
Thu, 05/09/2013 - 17:33
Also for me it works in OCC6.3.0 and VC2010.
I think I have a problem when building the OCC library.
It seem that the method exported in the tkv3d.lib uses a wrong type of character code (unicode,multibyte, undefined ?).
I am building my app with MFC,without ATL,in multibyte, and you ?
Thu, 05/09/2013 - 17:36
We are using the supplied vcproj file without any modification and have been compiling on VC2005 and VC2008, in 32 and 64 bits, on Windows XP and 7.
Thu, 05/09/2013 - 19:17
Have anyone used the OCC6.6.0 with VS2010 ?
Fri, 11/22/2013 - 20:38
Hi,
I am getting the same linker error using DrawTextW. I managed it by using the graphic drivers "Text" Method.
Somewhere you created your V3D_Viewer like this:
---snip---
Handle(Graphic3d_GraphicDriver) aGraphicDriver = new OpenGl_GraphicDriver ("TKOpenGl");
aGraphicDriver->Begin (new Aspect_DisplayConnection());
TCollection_ExtendedString aNameOfViewer ("Visu3D");
Handle(V3d_Viewer) aViewer = new V3d_Viewer(
aGraphicDriver, aName, aDomain, ViewSize, ViewProj,
Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT,
ComputedMode, aDefaultComputedMode, V3d_TEX_NONE);
---snap---
Now you can call the graphic drivers Text Method directly:
aViewer->Driver()->Text("Hello World!", 100, 100, 20);