... перекомпилируй его под XPПопробую. Только где гарантии, что сей модуль будет корректно работать, положим на Vista и Win 7? Или для каждой ОС надо создавать свой модуль?
У меня подозрение, что ты используешь стороннюю библиотекуСудя по анализу с Dependency Walker на эти два файла ссылаются библиотеки подкрашенные красным:
Только где гарантии, что сей модуль будет корректно работать, положим на Vista и Win 7?Гарантий никто не даст, но тем не менее обычно есть преемственность от старых к новым, а не наоборот.
Судя по анализу с Dependency Walker на эти два файла ссылаются библиотеки подкрашенные красным:Честно говоря я совсем не уверен, что проблема с тем, что твой arx не грузится на XP, связана с отсутствующими библиотеками.
Попробуй установить (в stdafx.h):Код - C++ [Выбрать]
#define WINVER 0x0400 #define _WIN32_WINNT 0x0400 #define _WIN32_WINDOWS 0x0410 #define _WIN32_IE 0x0400
Ну и VS 2008 (Platform Toolset = v90)Это - аксиома.
С такими настройка не компилируется. Компилятор требует минимум 0x0501.У меня компилируется. Эти настройки выставляет ObjectARX Wizard 2012. Кстати, можешь просто создать с его помощью проект и добавить в него свои cpp- и h-файлы.
У меня компилируетсяУ меня в проекте задействован WTL - он-то и требует. Можно попробовать сделать ему даунгрейд.
У меня в проекте задействован WTLС этого и нужно было начинать. Посмотри совместимость с Windows XP её версий.
С этого и нужно было начинать. Посмотри совместимость с Windows XP её версий.Ну так 0x0501 это же и есть XP! Или нет?
Ну так 0x0501 это же и есть XP! Или нет?Я не про WINVER, а про WTL. Думаю, что только те настройки, которые создаёт ObjectARX Wizard однозначно совместимы с Windows XP.
Думаю, что только те настройки, которые создаёт ObjectARX Wizard однозначно совместимы с Windows XP.Жёстко Вы рубите. Судя по WINVER этот проект будет совместим с Windows NT... только AutoCAD 2012 не станет на эту платформу.
Или это ничего не даст?Думаю, что это ничего не даст. От машины, на которой происходит сборка ничего не зависит. Зависит от настройки проекта и библиотек, с которыми идёт линковка.
В общем сделал даунгрейд WTL - компилятор стал проглатывать, но стал плеваться на бустовые заголовки...А если при этой версии WTL поставить WINVER 0x0501 ?
А если при этой версии WTL поставить WINVER 0x0501Пробовал, компилятор в этой связке даже съедает _WIN32_IE 0x0400 - но толку нет, не грузится приложение.
Т.е. менять всё-таки можно?Менять можно, но осторожно. Впрочем, я до сих пор не уверен, что проблема в тех двух библиотеках, которые не находит dependency walker.
P.S.: Я правильно понимаю, что этот же arx-файл нормально грузится в AutoCAD 2012 в Windows Vista/7 x86?В Висте не знаю - нет возможности проверить самому. Win7 x86/x64 и выше всё работает.
dumpbin.exe /imports test.arx
dumpbin.exe /exports test.arx
Интересно посмотреть на результаты:Приложил результаты.
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE
?У тебя есть def-файлНет. У меня в stdafx.h реализовано так:
И кроме того мне непонятно откуда взялась библиотека UxTheme.dllЯвно - нет. Честно говоря не знаю что это.
Ты её используешь?
Нет. У меня в stdafx.h реализовано так:Попробуй сделать как я сказал с def-файлом.
И кроме того мне непонятно откуда взялась библиотека UxTheme.dllДа - понял что это! Использую. Но это библиотека не на что не влияет. Я пробовал грузить в XP схожий облегченный проект (там её нет) - та же фигня.
Ты её используешь?
Я пробовал грузить в XP схожий облегченный проект (там её нет) - та же фигня.А если ты создаёшь простой проект при помощи ObjectARX Wizard - он грузится?
Попробуй сделать как я сказал с def-файлом.Создал. Убил свои строчки, добавил *.def. Ничего не изменилось. Похоже файл exports такой же и остался.
А если ты создаёшь простой проект при помощи ObjectARX Wizard - он грузится?Создал пустой проект в Визарде - грузится норм.
Наверное тогда так:Попробуй сделать как я сказал с def-файлом.Создал. Убил свои строчки, добавил *.def. Ничего не изменилось. Похоже файл exports такой же и остался.
EXPORTS
acrxEntryPoint @1 PRIVATE
acrxGetApiVersion @2 PRIVATE
Наверное тогда так:Опыт показал, что очерёдность не имеет значения.
А вот интересно, существует ли какой-нибудь Redistributable Package с данным функционалом, который можно безболезненно и легально "залить" в XP.Это врядли. А вот сделать так, чтобы твоё приложение всё-таки грузилось в XP можно при помощи /DELAYLOAD. Ну и в коде проверить версию Windows и для XP использовать MessageBox.