ATL COM object в виде DLL не регистрируется где
От: volph  
Дата: 13.06.02 14:51
Оценка:
ATL COM object в виде DLL не регистрируется где VS .NET, я так понял она в зависит от других библиотек, как установить опцию в проекте, что-бы она встраивала это в Dll'ku??
Re: ATL COM object в виде DLL не регистрируется где
От: Ivan Россия www.rsdn.ru
Дата: 13.06.02 14:59
Оценка:
Здравствуйте volph, Вы писали:

V>ATL COM object в виде DLL не регистрируется где VS .NET, я так понял она в зависит от других библиотек, как установить опцию в проекте, что-бы она встраивала это в Dll'ku??


Зависит от atl.dll если ты компилировал проект в конфигурации MinSize. Чтобы не зависел, надо компилировать в конфигурации MinDependency (ну или объявить символ препроцессора ATL_STATIC_REGISTRY)
Re[2]: ATL COM object в виде DLL не регистрируется где
От: volph  
Дата: 13.06.02 15:17
Оценка:
Здравствуйте Ivan, Вы писали:

I>Здравствуйте volph, Вы писали:


V>>ATL COM object в виде DLL не регистрируется где VS .NET, я так понял она в зависит от других библиотек, как установить опцию в проекте, что-бы она встраивала это в Dll'ku??


I>Зависит от atl.dll если ты компилировал проект в конфигурации MinSize. Чтобы не зависел, надо компилировать в конфигурации MinDependency (ну или объявить символ препроцессора ATL_STATIC_REGISTRY)

а где это прописывается в VS .NET ??
Re[3]: ATL COM object в виде DLL не регистрируется где
От: Admiral Украина  
Дата: 13.06.02 16:53
Оценка:
Здравствуйте volph, Вы писали:

V>а где это прописывается в VS .NET ??


"Свойства проекта -> General -> Use of ATL" = Static Link to ATL.

Также если есть зависимости от msvcr70, то в "Свойства проекта -> C++ -> Code Generation -> Runtime Library" выбери то, что нужно (без DLL).
Re[2]: ATL COM object в виде DLL не регистрируется где
От: volph  
Дата: 13.06.02 16:55
Оценка:
Здравствуйте Ivan, Вы писали:

I>Здравствуйте volph, Вы писали:


V>>ATL COM object в виде DLL не регистрируется где VS .NET, я так понял она в зависит от других библиотек, как установить опцию в проекте, что-бы она встраивала это в Dll'ku??


I>Зависит от atl.dll если ты компилировал проект в конфигурации MinSize. Чтобы не зависел, надо компилировать в конфигурации MinDependency (ну или объявить символ препроцессора ATL_STATIC_REGISTRY)


объявил в stdafx.h

#define _ATL_STATIC_REGISTRY

Результат тот же :(
Re[3]: ATL COM object в виде DLL не регистрируется где
От: Александр Сомов Россия  
Дата: 13.06.02 17:47
Оценка:
Может быть ещё CRT в виде динамической библиотеки подключается (у VS.NET она новая, и нигде её нет). Решение: копировать вместе с програмой CRT (Файлы MSVCR70D.DLL — в отладочном режиме — или что-то в этом духе), либо подключать её статически (Configuration Properties\C++\Code Generation\Runtime Library = Multi-threaded Debug например)
Re[3]: ATL COM object в виде DLL не регистрируется где
От: Ivan Россия www.rsdn.ru
Дата: 14.06.02 06:42
Оценка:
Здравствуйте volph, Вы писали:

V>объявил в stdafx.h

V>#define _ATL_STATIC_REGISTRY
V>Результат тот же

Ты объявил до включения ATL-ных заголовочных файлов ?

Насчет зависимостей: советую посмотреть с помощью depends.exe. Может быть твоя dll зависит еще от каких-нибудь специфических VS.NET dll-ок
Re[3]: ATL COM object в виде DLL не регистрируется где
От: Dima_Lt Литва http://dimchansky.github.io/
Дата: 16.12.02 13:17
Оценка:
Здравствуйте, volph, Вы писали:

V>объявил в stdafx.h

V>#define _ATL_STATIC_REGISTRY
V>Результат тот же

У меня та же самая проблема
Автор: Dima_Lt
Дата: 16.12.02
практически.

С помощью Visual C++ 6.0 создаю через ATL простенький EXE-сервер (MathServer.exe).
В файл stdafx.cpp пишу:
#include "stdafx.h"

#define _ATL_STATIC_REGISTRY

#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#include <statreg.cpp>
#endif

#include <atlimpl.cpp>


жму Build — на моём компьютере регистрируется нормально, на другом (свежеустановленная WinNT) не хочет. Т.е. вроде как и запустилась и заврешилась но через OleView не видно, чтобы компонент где-то зарегистрировался.
Dependecy Walker для моего компонента MathServer.exe показывает:
c:\windows\system\ADVAPI32.DLL
c:\windows\system\GDI32.DLL
c:\windows\system\KERNEL32.DLL
c:\windows\system\OLE32.DLL
c:\windows\system\OLEAUT32.DLL
c:\windows\system\USER32.DLL
c:\work\com-programing\mathserver\debug\MATHSERVER.EXE

В чём проблема? Почему не регистрируется на другом компьютере?

И ещё вопрос, если всё же кто-то посоветует скопировать atl.dll — такого файла в системе у меня нету, есть только какой-то atlobj.dll.
Re: ATL COM object в виде DLL не регистрируется где
От: EvilFear Россия  
Дата: 18.12.02 13:44
Оценка:
Здравствуйте, volph, Вы писали:

V>ATL COM object в виде DLL не регистрируется где VS .NET, я так понял она в зависит от других библиотек, как установить опцию в проекте, что-бы она встраивала это в Dll'ku??


При регистрации чтоб была доступна atl70.dll. Если ее нет, то regsvr32 не регистрит никакие COM DLL. У меня такая проблема была при создании инстолятора софтины -- на пользовательских машинах не регистрились DLL. После того как я стал класть atl70.dll по пути все стало ОК
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.