информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Линуксовый ботнет, распространяющийся... 
 Конец поддержки Internet Explorer 
 Рекордное число уязвимостей в 2021 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] более того... 21.11.05 04:24  Число просмотров: 1832
Автор: catlion <catlion> Статус: Member
Отредактировано 21.11.05 04:41  Количество правок: 3
<"чистая" ссылка> <обсуждение закрыто>
Функция StringToHGlobalAnsi() определена в namespace System::Runtime::InteropServices, если вставить

using namespace System::Runtime::InteropServices;

то компилятор ругается на определение структуры DISPPARAMS, пишет

error C2872: 'DISPPARAMS' : ambiguous symbol
could be 'c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\OAIdl.h(701) : tagDISPPARAMS DISPPARAMS'
or 'stdafx.cpp(0) : System::Runtime::InteropServices::DISPPARAMS'

[UPD]
С преобразованием разобрался вроде, работает
BSTR cstr ((BSTR)(void*) Marshal::StringToHGlobalAnsi(str));

---
однако ругань на DISPPARAMS осталась :)
<programming>
[C++] System::String -> BSTR 21.11.05 02:49  
Автор: catlion <catlion> Статус: Member
Отредактировано 21.11.05 03:20  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
Камрады, помогите пожалуйста, совсем запутался во всех этих строковых преобразованиях.
Есть NET форма, из TextBox'а которой надо взять String и преобразовать его в BSTR для упаковки в структуру DISPPARAMS.

На MSDN форуме нашел 2 решения: include vcclr.h and use the PtrToStringChars (который возвращает __wchar_t __gc*), и Marshal.StringToHGlobalAnsi (который возвращает IntPtr).

Может ктото подскажет глупому, как всётаки преобразовать в BSTR или OLECHAR* (а заодно и в простой char*), и вообще, где почитать о преобразовании строковых типов? В тех книгах, что я нашел это не описано. В MSDN'e просто описание функций без методы...
[C++] более того... 21.11.05 04:24  
Автор: catlion <catlion> Статус: Member
Отредактировано 21.11.05 04:41  Количество правок: 3
<"чистая" ссылка> <обсуждение закрыто>
Функция StringToHGlobalAnsi() определена в namespace System::Runtime::InteropServices, если вставить

using namespace System::Runtime::InteropServices;

то компилятор ругается на определение структуры DISPPARAMS, пишет

error C2872: 'DISPPARAMS' : ambiguous symbol
could be 'c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\OAIdl.h(701) : tagDISPPARAMS DISPPARAMS'
or 'stdafx.cpp(0) : System::Runtime::InteropServices::DISPPARAMS'

[UPD]
С преобразованием разобрался вроде, работает
BSTR cstr ((BSTR)(void*) Marshal::StringToHGlobalAnsi(str));

---
однако ругань на DISPPARAMS осталась :)
[off] какой полезный форум :))) 21.11.05 04:48  
Автор: catlion <catlion> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Неоднократно замечал, что люди, только написав сюда, разбираются с проблемой сами. Видимо, даже такая вербализация задачи помогает ее решить :))
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach