Почему не желает компилить?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Почему не желает компилить?

Сообщение ANDLL » 07.04.2005 (Чт) 15:20

Код: Выделить всё
#import "msxml3.dll" rename_namespace("XML")
...
XML::IXMLDOMNode* tx;
CString* ret;
...
ret=new CString(tx->nodeName);


И как правильно в таком случае получить tx->nodeName в виде CString\LPSTR?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.04.2005 (Чт) 15:36

Если заменить на
Код: Выделить всё
tx->nodeName.GetBSTR()

То компилит, но потом вызывает ошибку на inline-процедуре GetnodeName в файле msxml.tli
Проверено, что tx!=NULL.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.04.2005 (Чт) 16:01

А не компилит - какие ошибки пишет???

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.04.2005 (Чт) 16:30

error C2668: 'ATL::CStringT<BaseType,StringTraits>::__ctor' : ambiguous call to overloaded function
with
[
BaseType=char,
StringTraits=ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>
]
and
[
BaseType=char,
StringTraits=ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>
]
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.04.2005 (Чт) 17:00

Объяснение ошибки из MSDN:
Код: Выделить всё
The following is an example of this error:

struct A {};
struct B : A {};
struct X {};
struct D : B, X {};

void func( X, X );
void func( A, B );
D d;
void main()
{
   func( d, d );        // error, D has an A, B, and X
   func( (X)d, (X)d );  // OK, uses func( X, X )
}

:oops:

а почему не так

Код: Выделить всё
CString ret;
...
ret=tx->nodeName;

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.04.2005 (Чт) 17:23

У меня есть MSDN.

То что ты написал, полностью аналогично.

Кстати, ошибка исчезает, если заменить IXMLDOMNode* на IXMLDOMNodePtr :roll: А вот почему :?:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.04.2005 (Чт) 17:32

Дома попробую разобраться.
Завтра скажу :)

ANDLL писал(а):У меня есть MSDN.


Ещё раз :oops:

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.04.2005 (Чт) 21:55

Не могу сваять проект на с++ с xml работаю только из VB!!!
Намного проще! Намного!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.04.2005 (Пт) 13:09

Проще. Смотря что. В моем модуле XML составляет где-то 1/3, а все остальное трудоемкие операции с памятью, так что писать это на VB я не могу. А какие проблемы с подключением? Ведь всего одна директива #import...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 08.04.2005 (Пт) 14:04

пример из MSDN пишет что необходимы
msxml.h ans msxml.idl
а их то и нет

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.04.2005 (Пт) 14:13

Не обязательно. Наиболее современный способ - использование smart-указателей. Просто пишешь #import "msxml3.dll" rename_namespace("XML") и далее в пространстве имен XML содержаться все необходимые тебе интерфейсы. C++ автоматически генерирует tli(читай - h)-файл с описанием интерфейсов и классов...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 08.04.2005 (Пт) 14:27

Во блин! А я до 2 ночи сидел искал какая-же тулза сделает мне из длл H и idl
Но это Н а idl?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.04.2005 (Пт) 14:58

Для тебя это не имеет значения. Хотя именно tli пишеться на Cpp.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 08.04.2005 (Пт) 15:04

Ясно попробую.
А как на счет WTL?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.04.2005 (Пт) 19:45

А что это такое?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 09.04.2005 (Сб) 21:31

Ну ATL - Active Template Library, а WTL - Windows Template Library
вообщем следующий шаг

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.04.2005 (Вс) 14:30

Давай.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 194

    TopList