Проблема перевода прокта с VS2005 на VS2008
От: VoP Россия  
Дата: 31.05.10 06:19
Оценка:
Привет всем!
У меня проблема с переводом проекта с VS-2005 на VS-2008. Проблема отягощается еще и тем, что в старом проекте используется библиотека BCG от которой нам хочется отказаться в новом проекте. Новый проект я довел до стадии запуска, т.е. синтаксические ошибки все побеждены, классы BCG заменены на соответствующие вроде бы им классы MFC, проект компилируется и собирается. Но. Здесь начинаются проблемы. При выполнении загрузки MainFrame (pMainFrame->LoadFrame(IDR_MAINFRAME) программа падает при попытке загрузить строку из ресурса str.LoadString(IDS_AFXBARRES_CLOSEBAR) в файле afxtabctrl.cpp в функции CMFCTabCtrl::OnCreate. Почему нет этой строки я не знаю!? Может быть я не верно заменил классы CBCGTabCtrl на CMFCTabCtrl?
Если кто сталкивался с подобными проблемами или имеет какое-либо предположение по решению этой проблемы, будьте добры откликнуться. Очень буду рад узнать ваше мнение.
Re: Проблема перевода прокта с VS2005 на VS2008
От: Андрей Россия  
Дата: 31.05.10 07:11
Оценка:
Здравствуйте, VoP, Вы писали:

VoP>Привет всем!

VoP>У меня проблема с переводом проекта с VS-2005 на VS-2008. Проблема отягощается еще и тем, что в старом проекте используется библиотека BCG от которой нам хочется отказаться в новом проекте. Новый проект я довел до стадии запуска, т.е. синтаксические ошибки все побеждены, классы BCG заменены на соответствующие вроде бы им классы MFC, проект компилируется и собирается. Но. Здесь начинаются проблемы. При выполнении загрузки MainFrame (pMainFrame->LoadFrame(IDR_MAINFRAME) программа падает при попытке загрузить строку из ресурса str.LoadString(IDS_AFXBARRES_CLOSEBAR) в файле afxtabctrl.cpp в функции CMFCTabCtrl::OnCreate. Почему нет этой строки я не знаю!? Может быть я не верно заменил классы CBCGTabCtrl на CMFCTabCtrl?
VoP>Если кто сталкивался с подобными проблемами или имеет какое-либо предположение по решению этой проблемы, будьте добры откликнуться. Очень буду рад узнать ваше мнение.

по умолчанию этот ресурс сидит в файле mfc90loc.dll, который находится в WinSxS (где loc надо заменить на язык твоего приложения, в случае с русским языком — это будет rus)

проще всего добавить в свои ресурсы строку с таким идентификатором и не париться

если же полезут проблемы с другими ресурсами — тогда надо дальше копать
Re[2]: Проблема перевода проекта с VS2005 на VS2008
От: VoP Россия  
Дата: 31.05.10 07:35
Оценка:
Здравствуйте, Андрей. Спасибо за помощь. Вы писали:

А>по умолчанию этот ресурс сидит в файле mfc90loc.dll, который находится в WinSxS (где loc надо заменить на язык твоего приложения, в случае с русским языком — это будет rus)


Да. Нашёл такую. Почему она может не запускаться? Или какая либо из них? Я так понимаю ресурс почему то не находится.

А>проще всего добавить в свои ресурсы строку с таким идентификатором и не париться


А>если же полезут проблемы с другими ресурсами — тогда надо дальше копать


Эта была моя первая мысль! Но возможно и это был первый затык от системы!!!
Хотелось бы понять как решать подобные проблемы.
Re[3]: Проблема перевода проекта с VS2005 на VS2008
От: Андрей Россия  
Дата: 31.05.10 07:49
Оценка:
Здравствуйте, VoP, Вы писали:

skip

а если с нуля создать тестовый проектик в VS2008?
и посмотреть: будет запускаться или нет

а дальше: в зависимости от результатов
либо в коде проблема, либо в системе

больше пока ничего предложить не могу
Re[4]: Проблема перевода проекта с VS2005 на VS2008
От: VoP Россия  
Дата: 31.05.10 07:56
Оценка:
Здравствуйте, Андрей, Вы писали:

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


А>а если с нуля создать тестовый проектик в VS2008?

А>и посмотреть: будет запускаться или нет

Проекты, созданные в 2008 работают, без проблем.
Как я и предполагал заменой одного ресурса (а я уже 3 подставил) дело не разрешилось. Видимо где-то глобально надо подключать ресурсы.
Ну что же, спасибо. Может быть что то еще придёт в голову.
Re[5]: Проблема перевода проекта с VS2005 на VS2008
От: Андрей Россия  
Дата: 31.05.10 08:04
Оценка:
Здравствуйте, VoP, Вы писали:

skip

значит, надо смотреть файл ресурсов
там примерно такое должно быть:

///////------------ в начале файла
//
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Russian (Russia) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\r\0"
END

3 TEXTINCLUDE 
BEGIN
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
    "\r\n"
    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
    "LANGUAGE 25, 1\r\n"
    "#pragma code_page(1251)\r\n"
    "#include ""res\\Vega.rc2""  // non-Microsoft Visual C++ edited resources\r\n"
    "#include ""l.rus\\afxres.rc""         // Standard components\r\n"
    "#include ""l.rus\\afxprint.rc""       // printing/print preview resources\r\n"
    "#endif\0"
END
#endif    // APSTUDIO_INVOKED


///////--------------- в конце файла
//
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 25, 1
#pragma code_page(1251)
#include "res\bla-bla-bla.rc2"  // non-Microsoft Visual C++ edited resources
#include "l.rus\afxres.rc"         // Standard components
#include "l.rus\afxprint.rc"       // printing/print preview resources
#endif
/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED


насколько я понимаю, ты риббон используешь, значит, еще должна быть ссылка на afxribbon.rc

в общем, надо сравнить ресурсы твоего проекта и сгенеренного VS2008 — в ресурсах твоего проекта чего-то не хватает
Re[6]: Проблема перевода проекта с VS2005 на VS2008
От: VoP Россия  
Дата: 31.05.10 09:08
Оценка:
Здравствуйте, Андрей, Вы писали:

А>значит, надо смотреть файл ресурсов


А>насколько я понимаю, ты риббон используешь, значит, еще должна быть ссылка на afxribbon.rc


Да. Добавление этого ресурса помогло. Этот этап прошел. Новое выскочило. В общем как всегда.
Спасибо. Буду дальше копать.
Re[7]: Проблема перевода проекта с VS2005 на VS2008
От: Андрей Россия  
Дата: 31.05.10 09:15
Оценка:
Здравствуйте, VoP, Вы писали:

skip

VoP>Да. Добавление этого ресурса помогло. Этот этап прошел. Новое выскочило. В общем как всегда.

VoP>Спасибо. Буду дальше копать.

вот и хорошо, успехов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.