LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Не, linker scripts это что-то сложнее. А там просто соответствие, например, что функцию SomeFunction() (включая её c++-декорирование, например) следует искать в mylib.dll под именем «SomeFunctionV5», либо под порядковым номером 10221. Для стандартных dll это неизбежно, потому что почти нигде функции под нативными C-именами не хранятся, и даже просто системная C-функция SomeFunction() компилятором внутренне представляется под именем «_SomeFunction» (с подчёркиванием в начале или ещё как-то в зависимости от соглашений о вызове), а в dll скорее всего будет как минимум без подчёркивания. Вобщем, это адаптер между си-стилем внутреннего именования функций и некоторым «кроссязыковым» в dll-ках.

--wrap можно через это реализовать да.

Исправление firkax, :

Не, linker scripts это что-то сложнее. А там просто соответствие, например, что функцию SomeFunction() (включая её c++-декорирование, например) следует искать в mylib.dll под именем «SomeFunctionV5», либо под порядковым номером 10221. Для стандартных dll это неизбежно, потому что почти нигде функции под нативными C-именами не хранятся, и даже просто системная C-функция SomeFunction() компилятором внутренне представляется под именем «_SomeFunction» (с подчёркиванием в начале или ещё как-то в зависимости от соглашений о вызове), а в dll скорее всего будет как минимум без подчёркивания.

--wrap можно через это реализовать да.

Исходная версия firkax, :

Не, linker scripts это что-то сложнее. А там просто соответствие, например, что функцию SomeFunction() (включая её c++-декорирование, например) следует искать в mylib.dll под именем «SomeFunctionV5», либо под порядковым номером 10221. Для стандартных dll это неизбежно, потому что почти нигде функции под нативными C-именами не хранятся, и даже просто системная C-функция SomeFunction() компилятором внутренне представляется под именем «_SomeFunction» (с подчёркиванием в начале или ещё как-то в зависимости от соглашений о вызове), а в dll скорее всего будет как минимум без подчёркивания.