Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
korez
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 182
1

структура в dll

15.09.2011, 00:58. Просмотров 1252. Ответов 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
Ответы с готовыми решениями:

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

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

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет...

Структура DateTime, битовая структура
Условие: Структура содержит информацию о дате и времени некоторого события:...

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

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 Кб, 23 просмотров)
Тип файла: rar UseStructDLL.rar (17.9 Кб, 20 просмотров)
korez
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 182
16.09.2011, 02:10  [ТС] 3
у меня нет и небудет кодов исполняемого модуля.
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.09.2011, 02:13 4
Цитата Сообщение от korez Посмотреть сообщение
у меня нет и небудет кодов исполняемого модуля.
но для отладки-то вы напишите что-то простое, верно? как иначе?
0
korez
8 / 8 / 1
Регистрация: 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 Кб, 26 просмотров)
Тип файла: rar UseStructDLL2.rar (19.4 Кб, 18 просмотров)
16.09.2011, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2011, 12:14

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

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL
День добрый! При запуске моей программы (много моего кода + много разных...

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


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

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

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