Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
Доброго времени. Пытаюсь написать win32-приложение (в MS Visual C++ 2010) для Windows XP. Функция - работа с базой Access (mdb). Отлаживаю в win7. Программа нормально коннектится к базе. Запускаю на winXP - соединение не устанавливает. Подскажите, как определить, "чего в супе не хватает"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 18:49 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
Сообщений об ошибках не хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 19:30 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
White Owl, С сообщениями напряг. Пробовал вставлять обработчик - валится на PrintProviderError(). void PrintComError(_com_error &e) { _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); // Print COM errors. printf("Error "); printf(" Code = %08lx ", e.Error()); printf(" Code meaning = %s ", e.ErrorMessage()); printf(" Source = %s ", (LPCSTR) bstrSource); printf(" Description = %s ", (LPCSTR) bstrDescription); } void PrintProviderError(_ConnectionPtr pConnection) { // Print Provider Errors from Connection object. // pErr is a record object in the Connection's Error collection. ErrorPtr pErr = NULL; if( (pConnection->Errors->Count) > 0) { long nCount = pConnection->Errors->Count; // Collection ranges from 0 to nCount -1. for (long i = 0;i < nCount;i++) { pErr = pConnection->Errors->GetItem(i); printf(" Error number: %x %s", pErr->Number, pErr->Description); } } } То, что удаётся получить: Error Code = 80004003 Code meaning = Неправильный указатель Source = (null) Description = (null) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 19:53 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
Миха неопытныйС сообщениями напряг.Значит это первое на что надо обратить внимание. Сделаешь правильную обработку ошибок - пол-задачи решишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 20:11 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
White Owl, Тогда дополнительный вопрос: как в моём случае сделать правильную обработку ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 20:53 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
Миха неопытныйWhite Owl, Тогда дополнительный вопрос: как в моём случае сделать правильную обработку ошибок?А это зависит от того как ты пытаешься работать с базой. Если ODBC то одно, если OLEDB то другое, если COM то третье... Открываешь MSDN, ищешь там доку на свой интерфейс и ищешь куда скидываются номера и тексты ошибок и как их оттуда выкапывать. Еще учти что у тебя в игре два приложения - твое собственное и Акцесс, ошибка может появляться как на твоей стороне, так и в Акцессе - отлавливать надо ВСЕ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 23:00 |
|
||
|
win32 приложение для Windos XP
|
|||
|---|---|---|---|
|
#18+
Миха неопытныйОтлаживаю в win7. Запускаю на winXP Ну, из общих соображений, правильно отлаживать на XP, а проверять на Win7. Я именно так и поступаю, рабочий комп-XP, а проверяю на чистых 7-ках и 8-ках и т.п. И у меня проблем как правило нет. Не спец, но слышал утверждение что рантаймы "разные цепляются". Миха неопытныйкак определить, "чего в супе не хватает"? В XP может элементарно не хватать .Net Framework. С одной стороны для win32 он нафиг не нужен, но с другой стороны студия его каким-то волшебным образом цепляет. У меня есть ряд больших консольных проектов C++, кот. я постоянно компилирую на VC++2005 EE, На других XP/2003 они никогда не запускаются пока не скормишь .Net v. >= 2.0 SP1. Читал, что эта фигня как-то отключается, но руки не дошли. Но это вряд ли твой случай, т.к. прога при указанной проблеме ругается в самом начале и весьма характерным MsgBox-ом. Далее, ты говоришь про mdb. Миха неопытныйПрограмма нормально коннектится к базе. Запускаю на winXP - соединение не устанавливает. По крайней мере могу сказать с уверенностью, что если на VB6 под XP компилировать код (естественно 32-битный) со строкой коннекта вида Код: vbnet 1. 2. то этот коннект будет идеально работать на любых 7-ках и 8-ках включая 64-битные. Т.е. 32-битное приложение автоматически цепляет 32-битный драйвер кот. ВЕЗДЕ присутствует. Бытующее мнение по поводу того что надо ставить какие-то супер-драйвера от новых офисов неверно. Еще существенным является версия Microsoft ActiveX Data Objects Library. В VB6 можно прилепить любую версию, а использоваться будет последняя имеющаяся, т.е. 2.8 а вот в .Net, если прилепишь 2.6 через COM, то она и будет использоваться. Надо сразу прилеплять последнюю, т.е. 2.8. Здесь еще разумно применять позднее связывание: Код: vbnet 1. Не знаю как это переложить на C++. White OwlЕще учти что у тебя в игре два приложения - твое собственное и Акцесс, ошибка может появляться как на твоей стороне, так и в Акцессе - отлавливать надо ВСЕ. Работа с mdb-базами поддерживается на уровне OS и Акцесса как такового не требует. Могу даже сказать больше. mdb, созданная программно открывается в любом Access (т.е. и в 2000-м, кот. я например пользуюсь, и в каком-нибудь супер новой версии, которым я например не пользуюсь). Если открыть такую (созданную программно) mdb в "новом" Access, то в старом она уже никогда не откроется, но OLEDB через строку коннекта приведенную выше будет продолжать работать с этой mdb корректно. Миха неопытныйТогда дополнительный вопрос: как в моём случае сделать правильную обработку ошибок? О какой "обработке" может итти речь, если "соединение не устанавливает". На строке коннекта выскочит msgbox с сообщением о том, почему не подключились к БД. Не, м.б. конечно ты не через OLEDB работаешь. Тогда не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 00:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38579403&tid=2019636]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 132ms |

| 0 / 0 |
