0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 4
1

Регистрация DLL не работает в win64

30.05.2017, 11:19. Показов 1902. Ответов 6

Author24 — интернет-сервис помощи студентам
Задача следующая. Написал библиотеку, реализующую простой OLE интерфейс.
Сделал через ATL.
Среда Visual Studio 2015 pro.
Операционка Windows 7 32 бита.

Проблема в следующем - не могу зарегистрировать библиотеку ни в какой другой 64х битной системе.
Пробовал в разных. Win7, 8, 10.
regsvr32 говорит, что библиотека не найдена.
Простые решения типа запустить из-под администратора, указать путь в кавычках, положить в system32|syswow64 не предлагать. По моему все уже перепробовал. Тут что-то хитрее.

Отладить на целевой машине не могу. На моей машине, все, естественно, работает корректно. Регистрация/удаление и собственно сам функционал библиотеки.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2017, 11:19
Ответы с готовыми решениями:

Как перекомпилить Win32 dll -> Win64
Привет форумчане. Подскжите как перестроить MS2005 стоящую на ХР что бы можно было перекомпилить мою dll-ку под платформу Win64

GlfwSwapBuffers работает неадекватно медленно. (win64, glew, glfw3)
glfwSwapBuffers работает 15ms, что явно какой-то бред. Весть рендер занимает 5ms, а смена буферов 15? Что не так? На скрине видно время...

Где взять bass.dll bass.lib for win64
Приветствую. Тут много тем было на эти вопросы , но ответа не нашел. Где можно и вообще есть ли bass.dll,bass.lib для Windows 8.1 64...

6
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
30.05.2017, 11:47 2
А может быть, у твоей dll зависимость от других dll, которых нет на целевых системах?
В любом случае, все это - гадание на кофейной гуще. Без самой dll или кода регистрации
вряд ли можно что-то сказать наверняка. И да, запускать надо от имени администратора и
путь указывать в кавычках (если он содержит пробелы)
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 4
30.05.2017, 11:56  [ТС] 3
На других машинах пока не дошли руки проверить зависимости. С другой стороны там нет ничего сверхестественного.
Самое страшное там это CRYPT32.
Код регистрации стандартный от ATL без изменений.

C++
1
2
3
4
5
6
7
8
9
10
11
STDAPI DllRegisterServer(void)
{
    // регистрирует объект, библиотеку типов и все интерфейсы в библиотеке типов
    HRESULT hr = _AtlModule.DllRegisterServer();
    #ifdef _MERGE_PROXYSTUB
    if (FAILED(hr))
        return hr;
    hr = PrxDllRegisterServer();
#endif
        return hr;
}
А что, при ошибке зависимости regsvr32 будет выдавать такую же ошибку, как при отсутствии файла?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
30.05.2017, 12:12 4
Цитата Сообщение от Cyrick Посмотреть сообщение
На других машинах пока не дошли руки проверить зависимости. С другой стороны там нет ничего сверхестественного.
Ну как вариант - vcruntime140.dll. По дефолту все проекты C/C++ в VS2015
ставят в зависимости эту dll. Но она не на всех компьютерах есть...

Цитата Сообщение от Cyrick Посмотреть сообщение
А что, при ошибке зависимости regsvr32 будет выдавать такую же ошибку, как при отсутствии файла?
Не знаю, если честно...
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 4
30.05.2017, 14:25  [ТС] 5
А есть какая-то возможность избавится от этой гадости?
Не сказать, что я силен в сях, просто необходимость подтолкнула, а нюансов не знаю.

Добавлено через 1 час 38 минут
Спасибо, нашел. Да, по зависимостям вылезла эта новая "оптимизированная" vcruntime140.dll.
А все из-за того, что студия 2015 только у меня...
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
30.05.2017, 14:39 6
При создании проекта ATL надо указывать в мастере "Use ATL as static library".
Тогда зависимостей от vcruntime dll не будет.
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 4
30.05.2017, 14:54  [ТС] 7
У меня такого нет в мастере. Ну или совсем не знаю, куда смотреть.
Это можно как-то опциями разрулить?

Добавлено через 6 минут
Нашел. Библиотеку MFC Нужно статически собирать. Указывается отдельно в настройках проекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 14:54
Помогаю со студенческими работами здесь

У кого-нибудь еще работает Canon i320 под Win64?
У кого-нибудь работает Canon i320 под Win64? Нигде не могу найти драйвера. Может, кто поделится, или подскажет что делать?

Регистрация Dll
Всем привет. Расскажу по порядку - может добрый человек поможет... Есть программа А. На нее приобрели в инете новые кнопки (графические) -...

Регистрация dll
Здравствуйте. Есть такая библиотека NiApi.dll (http://www.netinvestor.ru/niapi.aspx). Так вот, в руководстве написано, что перед...

Регистрация DLL
Такая проблема: Есть парк компов в разных городах, не объединенных в ЛВС. На разных компах может быть разные пароли от локального админа....

Регистрация dll
Доброго времени суток. Хочу зарегистрировать dll командой: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru