dotSITE
Учебник по ASP.NET Форумы Work in Murano Software.
новости материалы решения форумы группы настройки/о проекте

Автор: Федосов Михаил
Тема: RE[4]: C# и SHGetFileInfo
Дата: 7/15/2004 6:34:00 PM
>Хотя поэкспериментировав еще, теперь мне кажется что проблема была в размере отводимом под szDisplayName. У меня под него отводилось 256, и тогда szTypeName пустой, если же его увеличить до 260 - szTypeName заполняется. Любопытно, что на заполнения самого szDisplayName это влияния не оказывает

А, точно! Тогда все понятно. Если посмотреть в MSDN, то там сказано, что szDisplayName имеет размер MAX_PATH, а константа MAX_PATH имеет размер 260. (если интересно, она описана в заголовочном файле С++ WinDef.h) При маршалинге под строку у тебя выделялось 256, и SHGetFileInfo просто начинал писать нули за пределы отведенного пространства, и как раз попадал на начало szTypeName. А все строки в системе заканчиваются нулем, поэтому при обратном преобразовании получалось так, что трока szTypeName как раз содержала эти нули в своем начале.

Как хорошо, что при програмировании под .NET таких глюков не происходит :-)





 C# -- Программирование на C#
 C# и SHGetFileInfo Stas6    7/15/2004 3:49:00 PM
 RE: C# и SHGetFileInfo Федосов Михаил    7/15/2004 5:37:00 PM
 RE[2]: C# и SHGetFileInfo Stas6 -    7/15/2004 6:06:00 PM
 RE[3]: C# и SHGetFileInfo Stas6 -    7/15/2004 6:21:00 PM
 RE[4]: C# и SHGetFileInfo Федосов Михаил    7/15/2004 6:34:00 PM


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development