Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проект vs2005 для WinXP перевести на VS2015  (Прочитано 785 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Boriska
Постоялец

ua
Offline Offline

« : 09-03-2017 09:16 » 

Привет форумчане.

Имею рабочий проект на C++ WinAPI для vs2005. Проект должен работать на WinХР.
Если собираю проект при помощи vs2005 установленной на WinХР то все работает.
Но у меня Win7 и vs2015 и я хочу сделать проект для WinXP. Есть опция в студии -
Planform toolset выставляю Visual Studio 2015 - Windows XP (v140_xp) компилируется все без вопросов.
Но когда на WinXp запускаю возникает ошибка я так понимаю линковки  Точка входа в процедуру ?GBOnDataUpdate@GBOPCDataAccessBase@@MAGXKPAUGBItemID@@PAUtagVARIANT@@PAGPAU_FILETIME@@PAJJK@Z не найдена в библиотеке DLL gbda3w.dll.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 10-03-2017 16:18 » 

Для начала, чтобы компилят в принципе работал на ХРюше, в самом общем случае (Debug, MFC Shared, и тп и тд), студия 2015 должна получить последний Update (3). С двумя предыдущими я успеха так и не добился

Это раз. Два, на целевую платформу (в зависимости от компиляции, используемых модулей и тп) необходимо установить кучку DLL (определяется эмпирически).

Теперь вопросы (возможно, что всё это уже присутствует, но всё-равно не работает)

 1 это только с конкретным проектом?
 2 а если проект изначально создан в VS 2015?
 3 тип проекта (Win API, Debug, MFC static/shared)
 4 ХРюша последняя? со всеми (доступными) апдейтами? (в моём случае заработало с SP3)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Boriska
Постоялец

ua
Offline Offline

« Ответ #2 : 11-03-2017 08:26 » 

1. Студия Версия 14.0.25431.01 Update 3.

2. На целевой машине запускал vs_redist.x86.exe 14.0.23026 для 2015

3а. Это первый проект C++, который решил перевести на 2015, до этого на шарпе под эту ХР компилил без проблем.

3b. Да надо будет попробовать создать с нуля проект и скинуть туду исходники. Переводил проект стандартно, открыв его более поздней студией.

3c. Тип проекта
Код: (C++)
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
     CMinimalServer srv;
     CoInitializeEx( 0, 0 );
     Цикл
     srv.GBRevokeClassObject();
     CoUninitialize();
}

3d. Хрюша SP3.
Записан
Boriska
Постоялец

ua
Offline Offline

« Ответ #3 : 21-03-2017 05:42 » 

Причина нашел, задачу не решил.
Такое поведение проявляется только с данным проектом.
Стандартный проект скомпилированный на vs2015 для Хр работает.
Ошибка появляется на строке CMinimalServer srv;
Разработчик тулкита Graybox (CMinimalServer ) посоветовал посмотреть
ОРС Core компоненты и что бы стоял С Runtime для vs 2015
Все это стоит но проблему не решает.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 21-03-2017 14:08 » 

Проверь зависимости этой самой DLL gbda3w.dll на целевой системе (Dependency Walker).

Насколько я понял, она линкуется статически в твой проект (в силу CMinimalServer srv;)?
Возможно её тоже надо компильнуть в "новой" студии с опцией поддержки ХР.

ну и чисто тупо: посади практиканта, чтобы он скидывал на ХРюшу dll-ки типа api-ms-* для х86 пока не заработает.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines