ABI при обмене данными после загрузки dll?
2. Если программы слинкованы разными линкерами, могут ли быть проблемы ABI при обмене данными после загрузки dll?
3. Если библиотеки объединены (lib, ar) разными архиваторами, могут ли быть проблемы ABI при обмене данными после загрузки dll?
Считаем, что стдлибы с, с++ одни и те же.
1) могут. Если скомпилированы одним -- тоже могут. 2) Могут. Аналогично -- если одним. 3) Если статические библиотеки используются, то при чём тут загрузка .DLL ? Итого, что ты вообще спрашивал-то?
п.3 - одну .а-шку собрали ar, другую llvm-ar, потом линкуем в сошку
У тебя либо слинкуется, либо нет, форматы архивов одинаковые должны быть... Так что п. 3 -- всё равно. Только я не понял всё равно, кого с кем должен быть несовместимый ABI, если ты ОДНУ .dll|.so собираешь...
по поводу длл - 1) собрали длл одним компилятором, линкером; 2) ехе - другой парой, и начинаем загружать одно из другого
Ну, так вот не зависимо от того, одним компилятором ты собирал или двумя разными, ABI может быть как одинаковым, так и разным. Я и не понимаю, что же ты хотел....
Компиляторы бывают как совместимые, так и не совместимые друг с другом. По тому самому ABI. И даже если ты собираешь одним и тем же компилятором, то ты можешь ABI сделать внезапно разным там и там ( вызов функции и приём параметров)
Обсуждают сегодня