Перейти к содержанию

Компиляция в MT visual studio


Рекомендуемые сообщения

Всем привет. 
В общем, компилирую приложение в visual studio .
Если компилить в MT ,то приложение будет работать на других компах и всё нормально, но если взять адрес функции, то мы получим не адрес начала функции, а адрес на прыжок в начало функции.(с MDd такого не происходит, но тогда приложение не работает на других компьютерах)
В c++ builder всё нормально, взяв адрес функции, мы попадём сразу в её начало.

Спойлер

KpPrvf-FWmU.jpg


Так в VS с выбранной библиотекой времени выполнения MT

Спойлер

n7R5vKc8J6Y.jpg


Вот так в c++ builder 
 

Спойлер

8KSO9b3ABIk.jpg

 

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Senpai сказал:

Если компилить в MT ,то приложение будет работать на других компах

Так и с MD(release) MDd(debug) будет работать на других компах, просто приложи рантайм библиотеку к приложению msvcrXXX.dll

Где XXX версия рантайма

 

Ссылка на комментарий
Поделиться на другие сайты

28 минут назад, temtriss сказал:

Так и с MD(release) MDd(debug) будет работать на других компах, просто приложи рантайм библиотеку к приложению msvcrXXX.dll

Где XXX версия рантайма

 

так это, нуу. Не оч как-то таскать с собой dll ?

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, Senpai сказал:

Не оч как-то таскать с собой dll

Тогда статическая линковка и распухший файл. Да, кстати, файл msvcrXXX.dll присутствует во всех рантаймах. И зачастую эти рантаймы уже установлены.

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, Xipho сказал:

Тогда статическая линковка и распухший файл. Да, кстати, файл msvcrXXX.dll присутствует во всех рантаймах. И зачастую эти рантаймы уже установлены.

Но я хочу компилить в MT ,но тогда 

Цитата

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

Мб нужно отключить CRT ? И юзать спокойно MDd ?

Изменено пользователем Senpai
Ссылка на комментарий
Поделиться на другие сайты

Так, я перепутал. MDd или MT не влияют.
 DO-07dBm-ts.jpg
Почему по адресу функции находится не код функции, а прыжок на код функции?

Изменено пользователем Senpai
Ссылка на комментарий
Поделиться на другие сайты

18 часов назад, Senpai сказал:

Почему по адресу функции находится не код функции, а прыжок на код функции?

Потому что не статическая линковка. Я ж говорил. При статической линковке код функции встраивается в код приложения. При динамической - это прыжок на функцию в библиотеке.

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Xipho сказал:

Потому что не статическая линковка. Я ж говорил. При статической линковке код функции встраивается в код приложения. При динамической - это прыжок на функцию в библиотеке.

Так нет. Я же сказал, что не влияет. Я поставил статическую, и всё равно по адресу функции идёт не код функции, а прыжок на неё((компилИЛ в конфигурации DEBUG)
Поставил релиз и всё норм

Изменено пользователем Senpai
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.