[vtkusers] VTK and Unicode
Maarten Beek
beekmaarten at yahoo.com
Thu Jun 5 18:20:41 EDT 2014
It's complaining about the ToNarrow() function.
(... symbol "__declspec(dllimport) <bla-bla> __cdecl vtksys::Encoding::ToNarrow(<bla-bla>) referenced in function <bla-bla> )
I got the VS solution from svn before my unicode changes and added the ToNarrow() function and everything builds fine.
I guess if I build my app with unicode, I should do this with VTK as well (how? don't see such an option in cmake...).
However the app crashes in Debug, but not in Release.
In another app, I need to set wchar_t as a build-in type to avoid the unresolved external symbol error, but then an ushort* (returned by QString::utf16()) cannot be cast to a wchar_t*... I guess ::ToNarrow(const wchar_t*) needs a ::ToNarrow(const ushort*) overload?
Maarten
On Thursday, June 5, 2014 5:03:56 PM, David Gobbi <david.gobbi at gmail.com> wrote:
Hi Maarten,
I use the functions in vtksys all the time. Not specifically the
Encoding functions, but they shouldn't be any different.
You said it reported an unresolved symbol error... what symbol
was it complaining about?
David
On Thu, Jun 5, 2014 at 2:56 PM, Maarten Beek <beekmaarten at yahoo.com> wrote:
> I am linking my app with vtksys.lib.
>
> But your answer also tells me I can use this function in my app.
>
> So it must be something else... maybe the fact that my vtk is built with
> multibyte and the app with unicode?
> Should find a function in vtksys that is unrelated to this to test.
>
> Maarten
>
>
> On Thursday, June 5, 2014 4:31:20 PM, David Gobbi <david.gobbi at gmail.com>
> wrote:
>
>
> An unresolved symbol just means that you have to link to the library,
> e.g. if you have a target_link_libraries() call in your CMakeLists.txt,
> make sure that "vtksys" is listed.
>
> On Thu, Jun 5, 2014 at 2:20 PM, Maarten Beek <beekmaarten at yahoo.com> wrote:
>> Hi David,
>>
>> Thanks for the quick reply.
>>
>> Sounds complicated, but I'll browse through the windows docs.
>>
>> In my search for a solution I also bumped into
>> vtksys::Encoding::ToNarrow(),
>> however this gives me an 'unresolved external symbol' link error. I have
>> never used stuff in vtksys (and similar libs like vtkpng, vtktiff) before,
>> so I am not really sure I am supposed to, i.e., these are just functions
>> used by cmake and/or in just the vtk build.
>>
>> Maarten
>>
>>
>> On Thursday, June 5, 2014 3:44:46 PM, David Gobbi <david.gobbi at gmail.com>
>> wrote:
>>
>>
>> Hi Maarten,
>>
>> VTK just uses C++ streams in most of its readers/writers. On OS X,
>> you'll find that you can use utf-8 filenames just fine. Same for linux,
>> for the most part at least.
>>
>> For Windows, you'd have to set the codepage to 65001 (utf-8). I've
>> done this successfully for console I/O (via SetConsoleOutputCP()),
>> but you'll have to look through the Windows docs to see what function
>> is needed to change the codepage used by CreateFileA.
>>
>> - David
>>
>>
>> On Thu, Jun 5, 2014 at 1:17 PM, Maarten Beek <beekmaarten at yahoo.com>
>> wrote:
>>> Hi all,
>>>
>>> I was wondering if there is a multi-platform way of loading a file (e.g.
>>> tif, stl) with chinese, russian characters in the file path in VTK.
>>> How would I build VTK with Unicode characters?
>>> Can I use a non-unicode VTK in a unicode app?
>>>
>>> Thanks - Maarten
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140605/eeb183ee/attachment.html>
More information about the vtkusers
mailing list