С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pEntity
13 / 8 / 1
Регистрация: 12.12.2012
Сообщений: 442
#1

Две экспортные функции по одному адресу - C++

09.02.2014, 10:12. Просмотров 274. Ответов 2
Метки нет (Все метки)

Здравствуйте. Использую для экспорта:

extern "C" __declspec(dllexport) __declspec(noinline)

Но две функции вышли по одному адресу, как поправить это дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 10:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Две экспортные функции по одному адресу (C++):

Определить принадлежат ли одному и тому же листу две заданные страницы - C++
Страницы. Страницы в книгах обычно нумеруются натуральными числами 1, 2, 3, ... так что одна сторона Первого листа имеет номер 1, обратная...

Необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
вот само задание: Авиарейсы (номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест). Выбор по дате...

Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
Помогите, пожалуйста, исправит ошибку. Необработанное исключение по адресу 0x77D88E19 (ntdll.dll) в Lab11.exe: 0xC0000005: нарушение...

Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу - C++
#include <math.h> const double eps = 0.001; ///< желаемая точность /// N - размерность матрицы; A - матрица коэффициентов, F -...

exception при вызове функции по адресу (MAPILogon) - C++
Пытаюсь прикрутить MAPI для работы с почтой. ULONG (*pMAPILogon)(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); ...

Вызов функции-члена класса по адресу в памяти - C++
Всем хорошего дня :) Допустим, что где-то есть static функция, не принимающая аргументов и ничего не возвращающая. Имея один лишь...

2
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,014
Завершенные тесты: 1
09.02.2014, 11:33 #2
В Visual Studio Команда меню
Проект->Свойства.
Открыть закладку
Компоновщик->Ввод
и в поле "Игнорировать указанную библиотеку"
вписать одну из этих двух.
0
Убежденный
Ушел с форума
Эксперт С++
15708 / 7219 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
09.02.2014, 19:17 #3
Компилятор (или компоновщик) решил, что функции идентичны и нет
смысла держать обе копии. Варианты решения:

1) Поместить функции в разные PE-секции.
Например, с помощью #pragma alloc_text.
Минусы - доступно только для C-кода, ну и некоторое "раздувание" бинарника.

2) Поставить в компоновщике опцию "Remove Redundant COMDATs" в "No".
Должно помочь. Минусы - действовать опция будет на все функции проекта.

3) Поколдовать над телом одной из функций, чтобы она немного отличалась
от своей "второй половинки". Например, чуток изменить сигнатуру или
добавить какой-то холостой код, который гарантированно не будет
выброшен компилятором.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 19:17
Привет! Вот еще темы с ответами:

Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09 - C++
Необработанное исключение по адресу 0x00105FD7 в Динамические структуры.exe: 0xC0000005: нарушение прав доступа при чтении по адресу...

Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC - C++
Программа толком не написан, проверял ранд и возникли проблемы. Ф-ция ранд генерирует одно и тоже число, но если убрать srand(time(0));,...

Написать две пользовательские функции, эквивалентные стандартной функции strlen - C++
Написать программу, содержащую две пользовательские функции определения длины строки, эквивалентные стандартной функции strlen. Первая из...

Две переменных по одному адресу без unsafe code - возможно ли - C#
Если у меня есть два объекта разных типов A и B. Можно ли без использования unsafe code сделать так, чтобы поля (например, типа int)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.