Тема: Некомпіліться виклик ДЛЛ

Доброго дня!
Я намагаюся використовувати бібліотеки DLL.
Проект Визуал Студіо 10.
Подивіться будь ласка.



Ошибка    1    error C1083: Не удается открыть файл включение: FuncsDll.h: No such file or directory    d:\rozbir\ dll2\dll2\myexecrefsdll\myexecrefsdll.cpp    8    1    MyExecRefsDll

// dllmain.cpp: определяет точку входа для приложения DLL.
#include "stdafx.h"
#include "FuncsDll.h"
#include <stdexcept>

using namespace std;

namespace Funcs
{

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}



    double MyFuncs::Add(double a, double b)
    {
        return a + b;
    }

    double MyFuncs::Subtract(double a, double b)
    {
        return a - b;
    }

    double MyFuncs::Multiply(double a, double b)
    {
        return a * b;
    }

    double MyFuncs::Divide(double a, double b)
    {
        if (b == 0)
        {
            throw invalid_argument("b cannot be zero!");
        }

        return a / b;
    }
}

Зарегівсь на MEGA < (файлосховище)
Незбагну ніяк як мені виставити у форум архів проекту, який я завантажив, для скачування?

Post's attachments

Dll2.rar 8.61 mb, 351 downloads since 2015-06-29 

Re: Некомпіліться виклик ДЛЛ

Це ж треба!! Файл приклеївсь, адже він заважкий!!  Ну, то гаразд.

3

Re: Некомпіліться виклик ДЛЛ

Давайте архів у Zip. Rar не безкоштовний. У мене його немає. І навіщо засмічувати сервер такими величезними файлами? Чому не викласти прости сирці?

Щодо вашого питання. Імовірно проблема з тим, що ви не прописали шляхів у налаштуванні проекту або у самій #include.

4

Re: Некомпіліться виклик ДЛЛ

#include "FuncsDll.h" -> #include "../Dll2/FuncsDll.h" (він же там?)

5

Re: Некомпіліться виклик ДЛЛ

Yola написав:

Давайте архів у Zip. Rar не безкоштовний. У мене його немає. І


дивно чому я убунті можу відкривати рар, а у вінді люди не можуть... 7-zip же!

6 Востаннє редагувалося Дмитро-Чебурашка (02.07.2015 14:55:38)

Re: Некомпіліться виклик ДЛЛ

Я вкладу напевно формат ZIP.
Я увійшов в тему. Читаю.

Так, я через 10-20 днів гадаю видалити архіви, вони важкі.

Якщо ж мені не вдасться із якихось причин, прошу архіви видалити модераторів (ну комп зламається або я зламаюся ...).


Зараз, взагалі мабудь зараз не прийдеться ничого вкладати!

7 Востаннє редагувалося Дмитро-Чебурашка (02.07.2015 15:31:05)

Re: Некомпіліться виклик ДЛЛ

Ні.   

#include "FuncsDll.h" -> #include "../Dll2/FuncsDll.h"

Ошибка    2    error C1083: Не удается открыть файл включение: FuncsDll.h: No such file or directory    d:\rozbir\ dll2\dll2\myexecrefsdll\myexecrefsdll.cpp    8    1    MyExecRefsDll

Предупреждение    1    warning C4067: непредвиденные лексемы за директивой препроцессора, требуется newline    d:\rozbir\ dll2\dll2\myexecrefsdll\myexecrefsdll.cpp    8    1    MyExecRefsDll

Не зміркую..   але щось не те якщо так й можливо.    Коротше ось архив зіп.....

Post's attachments

Dll2.z01 4.88 mb, 409 downloads since 2015-07-02 

8 Востаннє редагувалося Дмитро-Чебурашка (02.07.2015 15:37:21)

Re: Некомпіліться виклик ДЛЛ

2 частина

Post's attachments

Dll2.z02 4.88 mb, 409 downloads since 2015-07-02 

9 Востаннє редагувалося Дмитро-Чебурашка (02.07.2015 15:46:10)

Re: Некомпіліться виклик ДЛЛ

основа  (3)

Post's attachments

Dll2.zip 3 mb, 387 downloads since 2015-07-02 

10 Востаннє редагувалося Yola (02.07.2015 19:55:16)

Re: Некомпіліться виклик ДЛЛ

Чогось у мене архів не відкривається, ви можете почисти проект і залити лише сирці? Теки на кшталт Debug - не потрібні.

Натисніть Build -> Clean solution і відправляйте.

11

Re: Некомпіліться виклик ДЛЛ

Дмитро-Чебурашка написав:

Ні.   

#include "FuncsDll.h" -> #include "../Dll2/FuncsDll.h"

Ошибка    2    error C1083: Не удается открыть файл включение: FuncsDll.h: No such file or directory    d:\rozbir\ dll2\dll2\myexecrefsdll\myexecrefsdll.cpp    8    1    MyExecRefsDll

Предупреждение    1    warning C4067: непредвиденные лексемы за директивой препроцессора, требуется newline    d:\rozbir\ dll2\dll2\myexecrefsdll\myexecrefsdll.cpp    8    1    MyExecRefsDll

Не зміркую..   але щось не те якщо так й можливо.    Коротше ось архив зіп.....

Для тих, хто погано слухав. Оце:

#include "FuncsDll.h" -> #include "../Dll2/FuncsDll.h"

Означає не вставити цю строку в код, а ось це:

#include "FuncsDll.h"

замінити на:

#include "../Dll2/FuncsDll.h"

12

Re: Некомпіліться виклик ДЛЛ

І що таке "MathFuncs"?

13

Re: Некомпіліться виклик ДЛЛ

А як завантажити файл на цьому форумі?

14 Востаннє редагувалося Djalin (02.07.2015 21:22:38)

Re: Некомпіліться виклик ДЛЛ

вам обмінників мало?

15

Re: Некомпіліться виклик ДЛЛ

Djalin написав:

вам обмінників мало?

Є також достатня кількість форумів і взагалі занять, щоб якось витратити свій час. Але я бачу, що ТС якось завантажив файли саме сюди, і не розумію, чому я не можу одержати відповідь на таке просте запитання.

16 Востаннє редагувалося Djalin (02.07.2015 22:32:36)

Re: Некомпіліться виклик ДЛЛ

бо я не розумію, що саме у вас не вийшло..
https://replace.org.ua/extensions/om_images/img/55959f7fac76c/rxJQfcgf.png

Post's attachments

Screenshot - 02.07.15 - 23:25:10.png 36.32 kb, 345 downloads since 2015-07-02 

17

Re: Некомпіліться виклик ДЛЛ

втямив, спробуйте відредагувати своє повідомлення :)

18

Re: Некомпіліться виклик ДЛЛ

Djalin написав:

втямив, спробуйте відредагувати своє повідомлення :)

Дякую! "Не самий розумний" інтерфейс. Це як вимикач світла та розетка у шафі у номері провінціального хотелю радянських часів.

19 Востаннє редагувалося mich_retten (02.07.2015 22:56:51)

Re: Некомпіліться виклик ДЛЛ

Ну от, ваш проект, Дмитро-Користувач, чебурашка, одним файлом. Сподіваюсь, файл завантажу. Зараз полізу у шафу, может там дійсно вимикач...

Post's attachments

Dll2.zip 15.46 kb, 323 downloads since 2015-07-02 

20 Востаннє редагувалося Дмитро-Чебурашка (08.07.2015 11:31:53)

Re: Некомпіліться виклик ДЛЛ

Доброго дня!

Неначе повиправляв все до очовидного рівня. Я видать погано знаю і розумію як працює

DLL взагалі. Крім усього того іншо





го що я знаю і розумію погано взагалі.

Як виникає саме така помилка?



Ошибка    1    error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: static double __cdecl Funcs::MyFuncs::Divide(double,double)" (__imp_?Divide@MyFuncs@Funcs@@SANNN@Z) в функции _wmain    D:\Rozbir\ Dll2\Dll2\MyExecRefsDll\MyExecRefsDll.obj    MyExecRefsDll

Ошибка    5    error LNK1120: 4 неразрешенных внешних элементов    D:\Rozbir\ Dll2\Dll2\Debug\MyExecRefsDll.exe    MyExecRefsDll




// MyExecRefsDll.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"

#include <iostream>

#include "../Dll2/FuncsDll.h"

using namespace std;


int _tmain(int argc, _TCHAR* argv[])


{


   double a = 7.4;
    int b = 99;

    cout << "a + b = " <<
        Funcs::MyFuncs::Add(a, b) << endl;
    cout << "a - b = " <<
        Funcs::MyFuncs::Subtract(a, b) << endl;
    cout << "a * b = " <<
        Funcs::MyFuncs::Multiply(a, b) << endl;
    cout << "a / b = " <<
        Funcs::MyFuncs::Divide(a, b) << endl;

    try
    {
        cout << "a / 0 = " <<
            Funcs::MyFuncs::Divide(a, 0) << endl; 
    }
    catch (const invalid_argument &e) 
    {
        cout << "Caught exception: " << e.what() << endl; 
    }





    return 0;
}