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

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

Войти
Регистрация
Восстановить пароль
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182
#1

структура в dll - C++

15.09.2011, 00:58. Просмотров 1105. Ответов 6
Метки нет (Все метки)

как объявить структуру чтобы ее видели все функции?
объявляю ее вне всех функций и все равно не видят.
и как эту структуру сделать видимой для других программ(экспортируемой)?
C++
1
2
struct struct1{
int a};
это схема программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include ...........
#define ............
 
struct1 stest;
 
functioin1()
{}
 
functioin2()
{}
 
functioin3()
{}
 
functioin4()
{
stest.a = 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 00:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос структура в dll (C++):

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость. - C++
Ребят, помогите пожалуйста, 29 июня экзамен по "Основы программирования",кто сколько сможет сделать задач, тем всей группой поставим "+"...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар» - C++
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать...

Структура DateTime, битовая структура - C++
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime { unsigned short Year; // год ...

Структура, доступная из всех файлов проекта ("глобальная" структура) - C++
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер save.h, в котором имеется функция void...

Добавление своей dll в список dll подгружаемых процессом чужого процесса - C++
Вообще вопрос такой,как можно внедрить свою dll в список Import чужого не запущенного процесса?Не изменяя структуры файла.

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL - C++
День добрый! При запуске моей программы (много моего кода + много разных сторонних dll) на WinXP SP2, получаем соответствующую ошибку...

6
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 11:56 #2
Цитата Сообщение от korez Посмотреть сообщение
как объявить структуру чтобы ее видели все функции?
объявляю ее вне всех функций и все равно не видят.
и как эту структуру сделать видимой для других программ(экспортируемой)?
- проще всего дать повторное объяевление этой структуры уже в исполняемом модуле, юзающем DLL. Вот накидал Simple проект DLL (StructDLL), в которой присутсвует структура
C++
1
2
3
4
5
struct DLLStruct
{
    char sVal[256];
    int iVal;
};
и проекта использующего эту DLL (UseStructDLL), вот листинг main.cpp
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
#include <windows.h>
#include <stdio.h>
 
#define IMPORT __declspec (dllimport)
 
#pragma comment(lib,"StructDLL.lib") 
 
struct DLLStruct
{
    char sVal[256];
    int iVal;
};
 
IMPORT void UpdatetStruct(DLLStruct &st);
IMPORT void PrintStruct(DLLStruct st); 
IMPORT DLLStruct GetDLLStruct();
int main()
{
    printf("Program which showes using DLL structures\r\n");
    DLLStruct st;
    UpdatetStruct((st = GetDLLStruct()));
    PrintStruct(st);
    system("pause");
    return 0;
}
Как видишь я дал повторное объявление struct DLLStruct и спокойно пользуюсь ей в программе

[Результат работы]
Program which showes using DLL structures
Enter sVal :fgdgdfg
Enter iVal :215
sVal : fgdgdfg
iVal : 215
Для продолжения нажмите любую клавишу . . .
1
Вложения
Тип файла: rar StructDLL.rar (7.5 Кб, 21 просмотров)
Тип файла: rar UseStructDLL.rar (17.9 Кб, 18 просмотров)
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182
16.09.2011, 02:10  [ТС] #3
у меня нет и небудет кодов исполняемого модуля.
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.09.2011, 02:13 #4
Цитата Сообщение от korez Посмотреть сообщение
у меня нет и небудет кодов исполняемого модуля.
но для отладки-то вы напишите что-то простое, верно? как иначе?
0
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182
16.09.2011, 06:04  [ТС] #5
коммерческий продукт.
0
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 08:03 #6
Цитата Сообщение от korez Посмотреть сообщение
у меня нет и небудет кодов исполняемого модуля.
- обойдись без стрктур замени DLLStruct на void *

Добавлено через 4 минуты
Цитата Сообщение от korez Посмотреть сообщение
коммерческий продукт.
PS:Коммерческий продукту всягда техописанием снабжают, там то и можно указать структуру - по моему этот путь наиболее простой
0
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 12:14 #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- обойдись без стрктур замени DLLStruct на void *
-Усовершенствовал свой предыдущий DLL теперь проект UseStructDLL не содержит в себе DLLStruct
0
Миниатюры
структура в dll  
Вложения
Тип файла: rar StructDLL2.rar (9.2 Кб, 24 просмотров)
Тип файла: rar UseStructDLL2.rar (19.4 Кб, 16 просмотров)
16.09.2011, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2011, 12:14
Привет! Вот еще темы с ответами:

Запись из внедренной dll в другую dll этого процесса - C++
main.cpp #include &lt;Windows.h&gt; extern int writeprocess(); DWORD WINAPI MainThread(LPVOID lpParam) { ...

Dll файл в exe файле. Вшить dll libcurl - C++
Проблема такая что приходится таскать всегда libcurl.dll с собой. Надо все носить в одном exe. Enigma Virtual Box использовать нельзя,...

Как узнать путь к загруженной DLL из самой DLL? - C++
Создаю небольшую программку в папке c:/test/app/, есть DLL в папке c:/test/dll/. В коде самой dll, после её подгрузки в программу, можно...

Как узнать зависимость DLL-ки от других DLL-ек? - C++
Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно тулфейн свого компилятора и тд. Есть какая...


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

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

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