С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
3 / 3 / 1
Регистрация: 10.09.2014
Сообщений: 36
1

Сборка ДЛЛ библиотеки

04.08.2015, 19:01. Показов 1327. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема со сборкой ДЛЛ:
В библиотеке должно быть несколько функций, которые необходимо вызывать из C# кода, но проблема в том, что при построении библиотеки точка входа (имена функций) изменяются, на пример вместо Test() получается TestZ@HDG.
Объявляю функцию таким способ (в хедере и спп файлах):

C++ (Qt)
1
extern __declspec(dllexport) void Test();
среда - MVS 13 pro.

Кто-нибудь подскажет как решить данную проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2015, 19:01
Ответы с готовыми решениями:

Сборка статической библиотеки
Есть библиотека из 2 следующих файлов: //mylib.h #ifndef __MYLIB_H__ #define __MYLIB_H__...

Физический движок Box2d, сборка статической библиотеки
Здравствуйте. Я новичок и решил впервые собрать статическую библиотеку из Box2D. При первой...

CDialogEx + dll, После завершения модального диалога (CDialogEx) из длл-библиотеки работа длл-библиотеки прерывается
Добрый день, подскажите, пожалуйста, новичку с++/mfc. Работаю в VS 2010. Есть необходимость...

Передача процессу функции внедрения длл через другую длл (Очень сложно и не понятно)
Допустим у меня есть dll1.dll и 2 процесса game.exe и calc.exe, мне нужно написать длл т.е....

4
Неэпический
18109 / 10696 / 2062
Регистрация: 27.09.2012
Сообщений: 26,933
Записей в блоге: 1
04.08.2015, 19:08 2
Лучший ответ Сообщение было отмечено ZHSV как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifdef __cplusplus
extern "C"
{
#endif
 
 
//...
 
 
 
#ifdef __cplusplus
}
#endif
1
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
04.08.2015, 19:12 3
Лучший ответ Сообщение было отмечено ZHSV как решение

Решение

C++
1
2
3
4
extern "C"
{
__declspec(dllexport) void test();
}
1
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
04.08.2015, 19:26 4
Лучший ответ Сообщение было отмечено ZHSV как решение

Решение

Цитата Сообщение от ZHSV Посмотреть сообщение
Кто-нибудь подскажет как решить данную проблему?
Это называется декорация имен (или искажение имен), он же name mangling.
Решение - использовать DEF-файл. При экспорте DEF-файлом имена искажаться
не будут. По такому принципу сделаны многие (если не все) dll из Win32 API.

LibName.def
Код
LIBRARY "LibName.dll"

EXPORTS
    Func1
    Func2
    FuncN
    ...
2
3 / 3 / 1
Регистрация: 10.09.2014
Сообщений: 36
04.08.2015, 19:37  [ТС] 5
Спасибо за ответы, вопрос решен
0
04.08.2015, 19:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2015, 19:37
Помогаю со студенческими работами здесь

Подгрузка мануал мапом длл из другой длл
Помогите, у меня есть процесс который подгружает в себя 1 бесполезную длл которая никак не влияет...

При выгрузке библиотеки(ДЛЛ) возникает возникает ошибка
Здравствуйте!! Ребята, подскажите, по такому вопросу написал код создания кнопки на форме при...

Сборка библиотеки
Доброго времени суток! Есть библиотека для работы с большими числами - GMP. GMP Скачав архив я...

Сборка библиотеки
Имеется библиотека, созданная в Qt Creator. Если исходник библиотеки собрать как приложение...

Сборка DLL библиотеки
#include "stdafx.h" #include <Magick++.h> #include <iostream> using namespace std; using...

Сборка динамической библиотеки
Пытаюсь собрать динамическую библиотеку для использования её из питона. #include <iostream>...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru