powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с DLL
1 сообщений из 1, страница 1 из 1
Проблема с DLL
    #33703677
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть AxtiveX компонент, который написан на C++ Builder 6.0

Я его регистрирую и использую в среде "1С Предприятие". Там все работает нормально.

Но вот я захотел его же использовать приложении MFC (Visual Studio C++ .NET).

Попытался добавить мой компонент с помощьюя MFC Сass From AxtiveX, но в списке установленных компонентов его не нашел.

Тогда я создал класс с помощью MFC Сass From TypeLib. Мой компонент там был найден был создан класс обвертка.

Но в MFC приложении он не работает!!!

Вот как я вызываю его методы

::CoInitialize(NULL);
CMyXML0 Multi;
Multi.InitXML();
AfxMessageBox(Multi.GetFromXML((LPCTSTR)"id4",2));
Multi.EndXML();
::CoUninitialize();


Но выдается пустое окно.

Вот что сгенирировал мастер:

public:
CString GetFromXML(LPCTSTR Ident, long Lang)
{
CString result;
static BYTE parms[] = VTS_BSTR VTS_I4 ;
InvokeHelper(0x1, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, Ident, Lang);
return result;
}
void InitXML()
{
InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void EndXML()
{
InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


И вот соответственно и сами функции из компоненты:

STDMETHODIMP TMyXMLImpl::GetFromXML(BSTR Ident, int Lang, BSTR* Result)
{
if(Lang==1||Lang==2||Lang==3) // êàêîé ïàðàìåòð ÿçûêà
{
GetFromXML2(Ident, Lang, *Result); // âûçîâ ô-öèè äëÿ ÷òåíèÿ èç XML-ôàéëà
}
return S_OK;
}


STDMETHODIMP TMyXMLImpl::EndXML()
{
MyXMLDoc->Active=false; // çàêðûâàåì êîìïîíåíò
delete ResPtr; // óäàëÿåì óêàçàòåëü íà ïîòîê
}

STDMETHODIMP TMyXMLImpl::InitXML()
{
ResPtr=new TResourceStream((int)HInstance, "XML","RT_RCDATA"); // ñîçäàåì ïîòîê èç ðåñóðñà
MyXMLDoc=LoadXMLDocument("");
MyXMLDoc->LoadFromStream(ResPtr); // çàãðóæàåì XML ôàéë èç ðåñóðñà
MyXMLDoc->Active=true; // àêòèâèçèðóåì êîìïîíåíò
}


Никак не могу понять, почему в 1C работает, а в MFC нет. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]