Форум программистов, компьютерный форум CyberForum.ru

Не могу вызвать функцию из .dll - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где находится error()? http://www.cyberforum.ru/cpp-beginners/thread926746.html
Учусь по книге Страуструпа. Я знаю что много чего есть в его заголовочном файле std_lib_facilities.h , но я решил его не использовать. Кто может подсказать где описана функция error() ?
C++ Использовать void из 1.cpp в 2.cpp Допустим, есть функция void Hello(). Она в файле 1.cpp. Мне нужно её использовать в файле 2.cpp, но программа пишет, что идентификатор не определён. Я попробовал в начале 2.cpp написать #include "1.cpp" но после этого стало писать много ошибок error LNK2005. Что делать? http://www.cyberforum.ru/cpp-beginners/thread926735.html
Оператор индексации и присваивания для шаблонного класса Vector C++ C++
Было задание разработать шаблонный класс Vector и к нему перегрузить оператор таким боразом, чтобы он "должен позволять как получить значение элемента так и изменить его. Получение значения должно успешно работать для константных объектов". Просто индексацию я сделал, а вот как реализовать его вместе с присваиванием расчехлить не могу. Помогите неудачнику p.s функции set и get остались от...
Вылетает консольное приложение C++
При написании любой даже самой простой задачи или программы, а также в дальнейшем запуске консольное приложение(командная строка, программа и т.д.) просто включается/вылетает спустя 1сек.! сам .exe создается, а при нажатии "Debug (F5)" происходит нижеизложенная ошибка: Может в коде ошибка, хотя я пробовал разные! К примеру этот простейший он тоже принимает за ошибку #include <iostream> using...
C++ Работа с Итераторами http://www.cyberforum.ru/cpp-beginners/thread926666.html
Здравствуйте, у меня возникла следующая проблема. У меня есть list<pair<int, int> > snake; Мне надо, чтобы следующий элемент списка принимал значение нынешнего. Может кто-то пожалуйста написать цикл с использованием итераторов. ( Получается что, значение первого элемента списка не изменяется, а все последующие элементы принимают значения элементов перед ними. )
C++ Sink Здорова! Непонятная задачка: "Напишите итератор вывода, Sink, который в действительности ничего никуда не пишет. Где такой Sink может быть полезен? " Что такое итератор вывода? Я от знаю два вида итераторов константные и не константные, например для vector там всего два итератора константные и не константные, ну есть еще обратные тоже константные и не константные, а тут шото за фигня итератор... подробнее

Показать сообщение отдельно
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
22.07.2013, 06:47     Не могу вызвать функцию из .dll
Цитата Сообщение от NativeLand Посмотреть сообщение
extern "C++"
Надо писать extern "C"

Добавлено через 4 минуты
Еще необходимо указать calling convention: __stdcall

Добавлено через 25 минут
Пример для MinGW:
Кликните здесь для просмотра всего текста
test.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
#ifdef __cplusplus
extern "C" {
#endif
 
void __stdcall test() {
    std::cout << "hello from dll\n";
}
 
#ifdef __cplusplus
}
#endif

Кликните здесь для просмотра всего текста
main.cpp
C++
1
2
3
4
5
6
7
extern "C" void __stdcall test();
 
int main()
{
    test();
    return 0;
}

Кликните здесь для просмотра всего текста
Makefile
Bash
1
2
3
4
5
6
7
8
9
10
11
SRC = test.cpp main.cpp
OBJ = $(SRC:.cpp=.o)
 
all: dll main.o
    g++ -s -L. -o main.exe main.o -ltest.dll
 
dll: test.o
    g++ -s -shared -o test.dll test.o -Wl,--out-implib,libtest.dll.a
 
%.o: %.cpp
    g++ -c -Wall -O2 $*.cpp -o $@
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru