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

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

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

Студворк — интернет-сервис помощи студентам
Задача следующая. Написал библиотеку, реализующую простой 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
А может быть, у твоей dll зависимость от других dll, которых нет на целевых системах?
В любом случае, все это - гадание на кофейной гуще. Без самой dll или кода регистрации
вряд ли можно что-то сказать наверняка. И да, запускать надо от имени администратора и
путь указывать в кавычках (если он содержит пробелы)
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 4
30.05.2017, 11:56  [ТС]
На других машинах пока не дошли руки проверить зависимости. С другой стороны там нет ничего сверхестественного.
Самое страшное там это 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
Цитата Сообщение от Cyrick Посмотреть сообщение
На других машинах пока не дошли руки проверить зависимости. С другой стороны там нет ничего сверхестественного.
Ну как вариант - vcruntime140.dll. По дефолту все проекты C/C++ в VS2015
ставят в зависимости эту dll. Но она не на всех компьютерах есть...

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

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

Добавлено через 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
Собеседование по Node.js - вопросы и ответы
Reangularity 20.05.2025
Каждому разработчику рано или поздно приходится сталкиватся с техническими собеседованиями - этим стрессовым испытанием, где решается судьба карьерного роста и зарплатных ожиданий. В этой статье я. . .
Cython и C (СИ) расширения Python для максимальной производительности
py-thonny 20.05.2025
Python невероятно дружелюбен к начинающим и одновременно мощный для профи. Но стоит лишь заикнуться о высокопроизводительных вычислениях — и энтузиазм быстро улетучивается. Да, Питон медлительнее. . .
Безопасное программирование в Java и предотвращение уязвимостей (SQL-инъекции, XSS и др.)
Javaican 19.05.2025
Самые распространёные векторы атак на Java-приложения за последний год выглядят как классический "топ-3 хакерских фаворитов": SQL-инъекции (31%), межсайтовый скриптинг или XSS (28%) и CSRF-атаки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru