Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые Гуру! Я не студент и не профи! Просто балдею от программирования. Снова нуждаюсь в ваше помощи и совете Написал приложение Win32 WindowsForm : Пользовательский интерфейс на С# Все остальное - С++ в виде DLL Приложение работает с базой данных SQLite3 Используется пару сторонних dll которые кладу в директорию приложения Написал простенький инсталлятор приложения на С++, который создает нужные директории и кладет в них нужные файлы помещенные в его ресурсы. Все работает прекрасно НО Только на компьютере где стоит среда разработки (VS 2013) На "голой" системе не работает Подскажите пожалуйста: 1. Какие системные dll мне нужно таскать с приложением чтобы оно работало на любом компьютере с win XP, Win7, Win8.1, Win10 Как они называются и где расположены 2. Будет ли все это работать если dll просто положить в директорию с исполняемым файлом приложения (как мои написанные dll ) ? или их нужно еще и регистрировать в системе? В приложении я подключаю дополнительно следующие библиотеки: Код: plaintext 1. 2. и использую следующие заголовочные файлы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Заранее всем благодарен кто найдет немного времении и поможет мне разобраться с этим вопросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 13:54 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
ArbitНа "голой" системе не работает как ругается? скорее всего рантайма не хватает ( https://www.microsoft.com/ru-RU/download/details.aspx?id=40784) можно задать статическую линковку - тогда рантайм с собой таскать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 14:08 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
1. Для начала попробуй статическую линковку: для релиза в свойствах проекта С/С++ => Code Generation => Runtime Library поставь Multi-threaded (/MT) Это ключик заставит компилятор все необходимое из С/С++ включить внутрь твоей DLL. Возможно после этого твоя прога будет запускаться где угодно, а может и нет, если ты используешь еще какие-то третьи DLL, тогда при запуске виндовс просто выдаст окно какую DLL не может загрузить, а ты ее найди на своем компе и просто скопируй к своей DLL. 2. Никаких регистраций не надо, просто скопировать в туже папку. Под WinXP может не запуститься, не знаю может ли VS 2013 компилировать под XP, одно время компиляция под XP была убрана, в 2015 вернули, может в 2013 есть, я ей не пользовался. В общем для компиляции под XP в свойствах проекта General => Platform Toolset поставить Visual Studio 2015 - Windows XP (v140_xp) (это в 2015 так). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 14:13 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Изопропил, К сожалению ссылка оказалась нерабочей... :( У меня тоже была мысль что Runtime? но я думал что windows имеет ее при установке по умолчанию А Runtime это относится к Net ?... или к с++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 16:38 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Dima T,1. Для начала попробуй статическую линковку: для релиза в свойствах проекта С/С++ => Code Generation => Runtime Library поставь Multi-threaded (/MT) У меня стояло Многопоточный DLL (/MD) Переставил на рекомендованный. Теперь надо проверить на другом компьютере. Сейчас под рукой нет. А в двух словах популярно можете сказать какой ключ для чего? там всего несколько вариантов. (На будущее) авторВ общем для компиляции под XP в свойствах проекта General => Platform Toolset поставить Visual Studio 2015 - Windows XP (v140_xp) У меня есть такой вариант в наборе инструментов для XP Visual Studio 2013 - Windows XP (v120_xp) Получается что для XP нужно компилировать отдельную библиотеку? Или эта компиляция подойдет и для других версий Windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 16:48 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Arbit, у компилятора с++ студии на каждую версию свой рантайм, чем старше студия(по возрасту) - тем вероятнее, что рантайм уже есть в системе https://www.microsoft.com/ru-RU/download/details.aspx?id=40784 установку рантайма обычно в инсталляторы включают статически прилинковать как уже советовали - хуже не будет ----------------------------------- dotnet - это отдельная песня, всё сильно от версии завсисит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 16:49 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Dima TПод WinXP может не запуститься, не знаю может ли VS 2013 компилировать под XP, одно время компиляция под XP была убрана, в 2015 вернули, может в 2013 есть, я ей не пользовался. В общем для компиляции под XP в свойствах проекта General => Platform Toolset поставить Visual Studio 2015 - Windows XP (v140_xp) (это в 2015 так). Visual Studio 2013 - Windows XP (v120_xp) Но доверия ко всему этому включая Multi-threaded (/MT) никакого, уж извиняйте. Dima T, ты еще глянь сколько у него всего "подключено". Свое решение я озвучивал: Крайний раз здесь 20709903 Компилируется в VC++2005 (name="Microsoft.VC80.CRT" version="8.0.50727.762") На XP/2003 гарантом работоспособности является наличие .Net Framework >=2.0 SP1 (не потому что .Net, а потому что ставит этот рантайм), на остальных - по дефолту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 16:52 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Изопропил, Меня как-то удивило, что windows тихо молча проигнорировала сохранение данных в базу. То есть не выдала никаких сообщений и тупо промолчала и данные не добавила. Для Sqlit я использовал их библиотеку родную и компилировал подключением заголовочного файла. никакого dll файла для SQLite не требовалось все было внутри моей DLL В процессе написания DLL своей если была ошибка, то просто не исполнялась функция, а сообщений из dll не было никогда Может это где-то в настройках проекта у меня не включено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 16:57 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Изопропил, По поводу локализации языка при скачивании Runtime Будет ли иметь значение если на английскую или ивритскую винду попадет русский runtime? Или делать различные наборы инсталляций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 17:09 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
ArbitDima T,1. Для начала попробуй статическую линковку: для релиза в свойствах проекта С/С++ => Code Generation => Runtime Library поставь Multi-threaded (/MT) У меня стояло Многопоточный DLL (/MD) Переставил на рекомендованный. Теперь надо проверить на другом компьютере. Сейчас под рукой нет. А в двух словах популярно можете сказать какой ключ для чего? там всего несколько вариантов. (На будущее) /MD использует С++ рантайм, или по-простому DLL в которых классы самого С++ прописаны. /MT вставляет используемые тобой классы С++ внутрь твоей DLL. C /MT могут быть проблемы в управлении памятью. например одна DLL выделяет память (new) другая освобождает (delete), в таком случае нельзя использовать /MT, но это очень редкий случай. В большинстве случаев /MT проблем не создает. ArbitавторВ общем для компиляции под XP в свойствах проекта General => Platform Toolset поставить Visual Studio 2015 - Windows XP (v140_xp) У меня есть такой вариант в наборе инструментов для XP Visual Studio 2013 - Windows XP (v120_xp) Получается что для XP нужно компилировать отдельную библиотеку? Или эта компиляция подойдет и для других версий Windows? Нет, скомпилируй под XP, в других виндовсах тоже будет работать. Тут проблема обратной совместимости, в виндовсах после XP добавили много новых WinAPI функций, и если компилировать без оглядки на XP то С++ их вызывает, а при запуске в WinXP их нет, т.е. вызывать нечего, потому в XP не работает. В общем если надо в т.ч. запуск под XP - выстави Visual Studio 2013 - Windows XP (v120_xp) и будет работать везде от XP до Win10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 20:29 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
ArbitМеня как-то удивило, что windows тихо молча проигнорировала сохранение данных в базу. То есть не выдала никаких сообщений и тупо промолчала и данные не добавила. Для Sqlit я использовал их библиотеку родную и компилировал подключением заголовочного файла. никакого dll файла для SQLite не требовалось все было внутри моей DLL SQLite это сторонняя библиотека, я с ней не работал, деталей не подскажу. Виндовс тоже не обязан ни о чем предупреждать в данном случае. Оно работает ровно так как это было задумано ее разработчиками, а если ты не понимаешь как было задумано, то это твоя проблема, а не виндовса. В общем читай документацию на SQLite. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 20:38 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Dima TТут проблема обратной совместимости, в виндовсах после XP добавили много новых WinAPI функций, и если компилировать без оглядки на XP то С++ их вызывает, а при запуске в WinXP их нет, т.е. вызывать нечего, потому в XP не работает. На самом деле новых API после XP "терпимо немного". Ну, и такие вещи отсекаются в коде путем вычисления тек. версии OS в коде. Правда, как выяснилось могут быть проблемы с неоднозначностью "деклараций" одного и того же в h.файлах в разных SDK, отчего эффект может быть ну оч-чень неприятный. Но это так, к слову. К вопросу о рантаймах никакого отношения не имеет. А вот в VB6/.Net этих проблем нет. Задекларировал эту же самую WIN API один раз (ну главное аккуратно это сделать) и пожизненно счастлив. Ни тебе рантаймов, линковок, версий студий, версий SDK. Ну в .Net правда есть понятие "версия .Net Framework", но с этим-то как раз проще бодаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 21:14 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Dima TТут проблема обратной совместимости, в виндовсах после XP добавили много новых WinAPI функций, и если компилировать без оглядки на XP то С++ их вызывает, а при запуске в WinXP их нет, т.е. вызывать нечего, потому в XP не работает. На самом деле новых API после XP "терпимо немного". Ну, и такие вещи отсекаются в коде путем вычисления тек. версии OS в коде. Правда, как выяснилось могут быть проблемы с неоднозначностью "деклараций" одного и того же в h.файлах в разных SDK, отчего эффект может быть ну оч-чень неприятный. Но это так, к слову. К вопросу о рантаймах никакого отношения не имеет. А вот в VB6/.Net этих проблем нет. Задекларировал эту же самую WIN API один раз (ну главное аккуратно это сделать) и пожизненно счастлив. Ни тебе рантаймов, линковок, версий студий, версий SDK. Ну в .Net правда есть понятие "версия .Net Framework", но с этим-то как раз проще бодаться. Ты много чего не понимаешь и возникшим у тебя проблемам придумываешь неправильные причины. Ну при чем тут .Net если речь о рантайме С++? Это разные вещи. Не смог ты в VC2013 повторить то что у тебя в VC2005 работает, но это не проблема VC2013, а проблема твоих кривых рук. Не получилось, бывает, некогда разбираться, но не надо другим свою криворукость пропагандировать! А что касается неработоспособности в XP то первое что вылезет это не найдена WinAPI функция GetTickCount64() , ее нет в XP, а в висте уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 21:28 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Dima TНу при чем тут .Net если речь о рантайме С++? Это разные вещи. Я в данном случае понимаю о чем говорю и прекрасно понимаю то о чем ты говоришь. Просто слишком уж много тут "криворуких", которые с этими рантаймами и redistr. packages и не работой на "других системах" мучаются. А про .Net/VB и API было сказано, ровно то что сказано. Если я там декларирую Win API, например (первое чего открылось) Код: vbnet 1. 2. 3. 4. 5. 6. то у меня это там работает и я это успешно использую вне зависимости от С++ рантаймов, систем и т.п. (ну естественно если это поддерживается на ЭТОЙ ос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:08 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, WINAPI функции к рантаймам отношения ни малейшего не имеют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:14 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Изопропил, я не говорил что имеют отношение. просто любая C/C++ прога/dll эти рантаймы цепляет (хоть бы она на одних API писана), а потом из-за этого (из за отсутствия нужного рантайма) в другом месте не работает. И проблема эта не "два пальца.." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:36 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Тот кто действительно понимает, о чем говорит, не бежит на форум с криками "памагите", "все глючит", etc Надо внимательно читать документацию по деплою ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:38 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Единственное существенное исключение было, когда МС ввело манифесты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:39 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Arbit, не забывай пользоваться тегом [ SRC ] при оформлении исходников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:42 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
SiemarglДмитрий77, Тот кто действительно понимает, о чем говорит, не бежит на форум с криками "памагите", "все глючит", etc Надо внимательно читать документацию по деплою Ну я то с такими "криками" точно не бегу. Обычно тихо читаю и ваяю себе потихонечку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 22:49 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Dima T, Спасибо большое!!! Перекомпилировал DLL с ключем C /MT после чего она отяжелела на 100 КB Проверил на пустой системе все сработало великолепно на win10, win8.1, win7 Теперь надо проверить на XP Проверю - отпишусь. Очень благодарен всем за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 23:08 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
mayton,Arbit, не забывай пользоваться тегом [ SRC ] при оформлении исходников. Спасибо за совет! А можно чуток подробнее, я еще не встречался с этим вопросом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 23:10 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Все понял о чем речь!!! Это про оформление исходников на форуме :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 23:12 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
ArbitПерекомпилировал DLL с ключем C /MT великолепно на win10, win8.1, win7 С этим в моем случае также проблем не было. ArbitТеперь надо проверить на XP Проверю - отпишусь. Не забудь отписаться. Мне вот VS2013 тоже больше нравится чем 2005-я, красива-я... Только я как тут было сказано криворукий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 23:18 |
|
||
|
Заголовочные файлы и связанные с ними файлы dll Windows
|
|||
|---|---|---|---|
|
#18+
Хотя нет, у меня на XP как раз Multi-threaded (/MT) заработало, но на Win2003 почему-то нет, как предположили там же позже из-за std::string (C++). 20386932 Но, знаете что. Я м.б. тупой и криворукий, но точно знаю одно: Я не могу себе позволить роскошь, чтоб что-то где-то почему-то не работало. И все эти праздные рассуждения про криворукости, что там что-то может быть или не быть, что фишка может лечь или не лечь против этого извините не прокатывает. Никому не навязываю свою "криворукость", просто делюсь проверенной информацией о том, что надо сделать чтоб точно работало . А ваше, Dima T, Multi-threaded (/MT) ( при всем моем уважении к вам лично - без подтекста ) извините слово точно не гарантирует, хотя бы по тем причинам, что обсуждались после указанного выше поста 20386932 в той теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 01:01 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=25&tid=2018102]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 169ms |

| 0 / 0 |
