Вопрос

Мне нужны некоторые базовые пояснения по статической связи в C ++. У меня есть файл с именем data_client.lib. Для библиотечного файла a.exe, b.exe и c.exe есть три независимых потребителя. Существует служба с именем data_server.exe, для которой интерфейсом является data_client.lib. На самом деле я добавил еще одну функцию к data_server.exe и соответствующий интерфейс к data_client.lib. Поскольку просто a.exe требуется дополнительная функциональность, я создаю только a.exe. Я отправил data_server.exe, data_client.exe и a.exe как патч. Теперь b.exe и c.exe случайно / непоследовательно аварийно завершают работу с метанием

  

mfc42u! CException :: `RTTI Complete   Локатор объектов '+ 0x10

Имеет ли это смысл? Если я тоже соберу b.exe и c.exe, то сбоя не произойдет. Это так работает?

Это было полезно?

Решение

  

На самом деле я добавил еще одну функцию к data_server.exe и соответствующий интерфейс к data_client.lib.

Из этого немного неясно, что именно было добавлено в вашу библиотеку. Однако, если это новый метод или методы, добавленные в класс (а не просто какие-то новые автономные функции), есть очень высокая вероятность того, что перекомпиляция всего решит вашу проблему. vtable может быть или не быть сбит с толку вашими изменениями.

Также возможно, что ваши сбои не имеют абсолютно никакого отношения к этому, и есть какая-то другая проблема ... но, по вашему описанию, мои деньги связаны с проблемой vtable. Если бы это был я, я бы перекомпилировал b.exe и c.exe и протестировал бы их снова, прежде чем исследовать другие проблемы.

Другие советы

Возможно, у вас нет явных зависимостей, но некоторые заголовки вашего проекта используют или неявно помещают информацию в вашу библиотеку.

Я не знаю об ошибке, но ваши приложения b.exe и c.exe используют более старую версию библиотеки связывания для связи с более новой версией data_server.exe. Некоторые индексы v_table могут быть отключены или что-то еще, если вы добавили функцию. Вы определенно должны восстановить все библиотеки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top