Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.26;
Скачать: CL | DM;

Вниз

Не работает Shared Section.   Найти похожие ветки 

 
@!!ex ©   (2009-05-23 17:27) [0]

Есть длл, написанная на С++.
В ней объявлена Shared Section И несколько функций для работы с секцией.
В одном приложении я вызываю функцию Set, в своем Delphi приложении - Get..
И получаю пустоту. Все по нулям, как будто туда ничего не клали...

#include "stdafx.h"
#include "SharedData.h"

#pragma data_seg (".cat_data")

bool cs_ready = false;
_RTL_CRITICAL_SECTION data_lock;

sCatIN data_IN;
sCatOUT data_OUT;

#pragma data_seg ()
#pragma comment(linker, "/SECTION:.cat_data,RWS") // tell linker: make it shared section

void Lock()
{
if (!cs_ready){
 InitializeCriticalSection(&data_lock);
};
EnterCriticalSection(&data_lock);
data_OUT.LastReport=-1;
};

void Unlock()
{
LeaveCriticalSection(&data_lock);
};

extern "C" __declspec(dllexport) void SetInData(sCatIN Data)
{
Lock();
data_IN = Data;
Unlock();
};

extern "C" __declspec(dllexport) sCatIN GetInData()
{
Lock();
return data_IN;
Unlock();
};

extern "C" __declspec(dllexport) void SetOutData(sCatOUT Data)
{
Lock();
data_OUT = Data;
Unlock();
};

extern "C" __declspec(dllexport) sCatOUT GetOutData()
{
Lock();
sCatOUT Result = data_OUT;
data_OUT.Shooting = false;
return Result;
Unlock();
};


 
@!!ex ©   (2009-05-23 18:41) [1]

Переменные надо инициализировать. Иначе они в Shared Section не попадают, даже несмотря на то, что они там прописаны...



Страницы: 1 вся ветка

Текущий архив: 2009.07.26;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.02 c
15-1243020716
AlexDan
2009-05-22 23:31
2009.07.26
Отображение огня.


2-1242974328
Dennis I. Komarov
2009-05-22 10:38
2009.07.26
TMenuItem.Click -> any.dll procedure


15-1243406709
Кто б сомневался
2009-05-27 10:45
2009.07.26
Защита ПО на основе серийника железа, и другой комьпютер


15-1242798394
palva
2009-05-20 09:46
2009.07.26
Сегодня умер Олег Янковский


2-1243260477
Ega23
2009-05-25 18:07
2009.07.26
DevExpress TcxGrid - как добраться до НД при MultiSelet?