Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
1

Как добавить .def файл в проект?

05.05.2017, 19:15. Показов 2886. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как добавить .def файл в проект?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2017, 19:15
Ответы с готовыми решениями:

Как добавить файл шрифта в проект?
Как добавить файл шрифта в проект ?

Как добавить файл в проект, чтобы не было ошибок?
Здравствуйте. Впервые создал проект в студии 2017, добавил нужные файлы и удалил файл, созданный с...

Как открыть файл DEF
Как это сделать?

Добавление файла def в проект
Добавил блокнотом в проект и перестроил его. Что означает этот минус? Уверен, что ничего не вышло.

19
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
05.05.2017, 19:53 2
Если вдруг не получится, то варианты решения через задний проход.
1. Если IDE не позволяет добавлять файлы с нестандартными расширениями, то попробуй добавить его как *.c, а потом переименовать
2. Просто положи файл в каталог с исходниками, а в проект не добавляй. В компиляцию он подаваться не должен, он только инклюдится, так что проканает
3. Переименуй в *.h. Расширение *.def - не более чем удобство
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
05.05.2017, 20:24  [ТС] 3
Evg, всё равно ошибка на экспорте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <Unknwn.h>
#include <conio.h>
#include <objbase.h>
 
typedef IUnknown* (*CREATEFUNCPTR)();
 
using namespace std;
 
IUnknown* CallCreateInstance()
{
    wchar_t name[] = L"ConsoleApplication7.dll";
 
    HINSTANCE hComponent = ::LoadLibrary(name);
 
    if (hComponent == NULL)
    {
        cout << "Error of opening lib" << endl;
        return NULL;
    }
 
    CREATEFUNCPTR CreateInstance = (CREATEFUNCPTR) ::GetProcAddress(hComponent, "CreateInstance");
 
    if (CreateInstance == NULL)
    {
        cout << "Error of export" << endl;
        return NULL;
    }
 
    return CreateInstance();
}
 
int main()
{
    IUnknown* pI = NULL;
 
    pI = CallCreateInstance();
 
    getch();
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "stdafx.h"
#include <Unknwn.h>
#include <iostream>
#include <objbase.h>
 
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;
}
 
extern "C" const IID IID_IX = {0xb3d5176e,0x592a,0x4fb5,0xa866,0x802ca839f6b3};
extern "C" const IID IID_IY = {0xf4ee8427,0x53d3,0x4595,0xac0d,0x15d5856e9ba0};
 
interface IX : IUnknown
{
    virtual int _stdcall Fx() = 0;
};
 
interface IY : IUnknown
{
    virtual int _stdcall Fy() = 0;
};
 
class CA : public IX, public IY
{
    long m_cRef;
 
public:
    HRESULT _stdcall QueryInterface(const IID &iid, void** ppv);
    ULONG _stdcall AddRef();
    ULONG _stdcall Release();
 
    int _stdcall Fx();
    int _stdcall Fy();
};
 
HRESULT _stdcall CA :: QueryInterface(const IID &iid, void** ppv)
{
    if (iid == IID_IUnknown)
    {
        *ppv = static_cast<IUnknown*>((IX*)(this));
    }
 
    else if (iid == IID_IX)
    {
        *ppv = static_cast<IX*>(this);
    }
 
    else if (iid == IID_IY)
    {
        *ppv = static_cast<IY*>(this);
    }
 
    else
    {
        *ppv = NULL;
        return E_NOINTERFACE;
    }
 
    reinterpret_cast<IUnknown*>(this)->AddRef();
    return S_OK;
}
 
 
ULONG _stdcall CA::AddRef()
{
    return InterlockedIncrement(&m_cRef);
}
 
ULONG _stdcall CA::Release()
{
    if (InterlockedDecrement(&m_cRef) == 0)
    {
        delete this;
    }
 
    return m_cRef;
}
 
int _stdcall CA::Fx()
{
    return 83;
}
 
int _stdcall CA::Fy()
{
    return 133;
}
 
extern "C" IUnknown* CreateInstance()
{
    IUnknown* pI = static_cast<IUnknown*>((IX*)(new CA));
    pI->AddRef();
    return pI;
}
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
05.05.2017, 20:47 4
Видимо, я неправильно понял, что такое *.def файл
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.05.2017, 21:06 5
Цитата Сообщение от Evg Посмотреть сообщение
Видимо, я неправильно понял, что такое *.def файл
студийная ботва.
служит для указания списка экспортируемых функций при сборке длл

NewNoob, в настройках линкера.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
05.05.2017, 21:31  [ТС] 6
hoggy, как в них зайти?
0
Заблокирован
05.05.2017, 21:48 7
в них зайти
Как добавить .def файл в проект?
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
05.05.2017, 23:52  [ТС] 8
stamp,
Миниатюры
Как добавить .def файл в проект?   Как добавить .def файл в проект?  
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
06.05.2017, 00:02  [ТС] 9
stamp, что это за странный текст?
0
Заблокирован
06.05.2017, 01:09 10
Цитата Сообщение от NewNoob Посмотреть сообщение
что это за странный текст?
Английский, мне так кажется.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
06.05.2017, 15:34  [ТС] 11
stamp, stamp, я про эти две ошибки. В чём ошибка

Добавлено через 6 часов 27 минут
hoggy, можете подсказать,в чём ошибка
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
06.05.2017, 16:03 12
Цитата Сообщение от NewNoob Посмотреть сообщение
можете подсказать,в чём ошибка
1.
в руссифицированной через одно место студии.

2.
в вашей неспособности по-человечачьи выложить текст ошибки,
которую вам сообщил линкер.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
06.05.2017, 23:31  [ТС] 13
hoggy, так ошибка на скрине видна.

Добавлено через 5 часов 55 минут
hoggy, так что делать-то? Вряд ли в русификации дело: остальные ошибки нормально выводятся. Может,я криво библиотеку написал или def файл встроил? Я не знаю.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
06.05.2017, 23:55 14
Цитата Сообщение от NewNoob Посмотреть сообщение
так что делать-то?
см #12
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
07.05.2017, 21:37  [ТС] 15
hoggy, 12 - что - строчка кода?

Добавлено через 21 час 4 минуты
Evg, можете вы подсказать,в чём ошибка? Я не очень въехал,что имели в виду ответом выше. Русификатор,вроде ,нормальный - т.е ошибки нормально выводит,кроме этой. Откуда ещё взять текст ошибки,я не знаю.

Добавлено через 21 минуту
hoggy, конкретней,пожалуйста
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
07.05.2017, 22:51 16
NewNoob, судя по скринам, ты пытаешься добавить .DEF-файл в проект exe,
что в данном случае лишено смысла. Его надо добавлять в проект dll, а не exe.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
08.05.2017, 01:13  [ТС] 17
Убежденный, хм,сделал как вы сказали,теперь ошибка в экспорте. Какая была до добавления def. Почему он не может её экспортировать? Ошибка 1 вставка кода - 28 строка,т.е обрабатываемая ошибка.

Добавлено через 20 минут
Убежденный, и как экспортировать константы? У меня айди интерфейсов же ещё должны быть
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
08.05.2017, 01:22 18
NewNoob,
https://google.gik-team.com/?q... %2B%2B&l=1
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
08.05.2017, 01:45  [ТС] 19
Убежденный, ура! Я просто деф и длл в разные папки засунул...........-_- Заработало. Может,хоть дальше нормально двигаться начну.....
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
01.07.2017, 23:49  [ТС] 20
Ещё вопрос: как экспортировать IID таким образом? И ещё выдаётся ошибка вот таким способом задания IID:
C++
1
DEFINE_GUID(IID_IX,...)
На IID_IX жалуется. Не знаю,может,и не надо таким образом это делать,но просто в книге так дальше советуют.
0
01.07.2017, 23:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2017, 23:49
Помогаю со студенческими работами здесь

Добавить текстовый файл в проект
Подключил к проекту текстовый файл. Вопрос: как в процессе работы программы редактировать/сохранить...

Добавить текстовый файл в проект
Как можно добавить текстовый файл в проект? Чтобы он был встроен в jar

добавить файл в проект. Ms visual 2008
Собсно, сабж. можно как-то добавить ,например текстовый файл в проект, чтобы он был видимым по...

Добавить сторонний файл в проект и обратиться к нему
Есть задача, чтобы при компиляции на выходе был один exe файл. Программа печатает договор с...


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

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