0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
1

Проблема в том что из студии программа запускается а вот exe (в Debug) из папки нет.

13.03.2014, 17:35. Показов 1326. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый! Есть такая проблема:
В ActiveX компоненте помощью FileMapping создается область памяти которая в дальнейшем заполняется объектами с помощью функции memcpy. Создается FileMapping следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    
    hCFM = CreateFileMapping (INVALID_HANDLE_VALUE, 
        NULL,
        PAGE_READWRITE,
        0, 384 + SIZE_MEMORY*60, 
        L"MY_FILEMAPPING_OBJECT");
    if (hCFM == 0 || hCFM == INVALID_HANDLE_VALUE)
        MessageBox(L"Error CreateFileMipping!", L"ACHTUNG!", 0);
    m_pGlTextureMemory = MapViewOfFile(hCFM, 
        FILE_MAP_ALL_ACCESS,
        0, 
        0, 
        0);
SIZE_MEMORY = 72
384 - количество памяти занимаемое 6 объектами (с ними вроде как все нормально, по крайней мере программа запускается) + 60 объектов размером 72 байта.
Далее эти объекты через указатель передаются в программу контейнер. И все отлично работает без следующего кода:
C++
1
2
3
4
5
6
7
8
    
for (int i = 0; i < 60; i++)
{
    if (i == 47||i == 48||i == 49||i == 50) continue;
    memcpy(&m_pGlTextureMemory + 384 + i*SIZE_MEMORY, 
        new CSTLRead(&string[i][0]),
        sizeof(CSTLRead));
}
string - двумерный массив с адресами файлов зля загрузки.
Ранее в место memcpy просто заполнялся массив указателей след образом:
C++
1
m_pSTL[i] = new CSTLRead(&string[i][0]);
и все работало.
Вот таким образом копируются 60 объектов. Программа контейнер падает на создании динам. памяти. Вся проблема в том что из студии программа запускается а вот exe (в Debug) из папки нет. Подскажите в чем может быть проблема или хотя бы куда "копать"!)
Если не достаточно информации допишу что интересует.

Добавлено через 44 минуты
что из себя представляет класс CSTLRead:
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
class CSTLRead
{
    public:
        int Error;
        int stl_number;
        CSTLRead(char *FileName);
        int GetQntOfFacets();
        void ReadFile();
        void GetData(facet *Buffer, int Size);
        float GetWidth();
        float GetHeight();
        float GetDepth();
        float GetMiddleX();
        float GetMiddleY();
        float GetMiddleZ();
        ~CSTLRead();
        float MaxX, MaxY, MaxZ, MinX, MinY, MinZ;
    private:
        FILE *pFile;
        int QntOfFacet;
        facet *tFacet;
        binfacet *bFacet;
        bool ReadData();
        bool ReadDataBin();
        float Depth, Width, Height;
        float MiddleX, MiddleY, MiddleZ;
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2014, 17:35
Ответы с готовыми решениями:

"Да нет там такой папки. Вот все папки, вот весь код из первой папки. Делайте что хотите"
да там нет такой папки вот все папки cfg Directory 4096 u678321952 u678321952...

Не запускается exe файл из папки Debug
Написал программу на wpf под Win8. Программа запускается только из студии. Если запускать exe файл,...

Программа работает при дебаггинге (F5) из студии, но собранный .exe, запущенный отдельно - нет
Проблема в заголовке. Моя программа делает автоматическое копирование сохраняемых на внешний...

Скиньте пожалуйсто толковую литературу по графике Проблема в том, что как нарисовать знаю, а вот как заставить двигаться - не могу понять.
Доброго времени суток! Скиньте пожалуйсто толковую литературу по графике Проблема в том, что как...

4
Заблокирован
Автор FAQ
13.03.2014, 21:01 2
Как можно юзать ехе из дебаг?!!!Это же не экзешник а сплоршной отладочный код, судить о возможности запуска можно лишь по экзешнику в Release конфигурации
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
14.03.2014, 09:18  [ТС] 3
Есть меня в организации такое требование) ничего не поделаешь, только мне кажется если программа в дебаге не запускается она и в релизе не запустится. Просто повторюсь: если закоментировать строчку с memcpy то программа работает, а если оставить то нет. Просто подобный код он работоспособен или так делать опасно, и почему программа не запускается?
0
Заблокирован
Автор FAQ
15.03.2014, 12:41 4
Цитата Сообщение от МихаилХ Посмотреть сообщение
&m_pGlTextureMemory + 384 + i*SIZE_MEMORY
- ты уверен в указанных смещениях

Цитата Сообщение от МихаилХ Посмотреть сообщение
CSTLRead(char *FileName);
Цитата Сообщение от МихаилХ Посмотреть сообщение
&string[i][0]
- зачем такой изврат?
C++
1
вот адекватная запись new CSTLRead(string[i])
короче приведи нормальный полный код , у тебя косяк в выделении либо доступе к блоку памяти, где именно можно заключить лишь прогнав код в отладчике
1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
17.03.2014, 12:25  [ТС] 5
Проблему я уже решил. Как раз в смещениях и была проблема.
C++
1
вот адекватная запись new CSTLRead(string[i])
у там просто двумерный массив.
Но все равно спасибо! =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2014, 12:25
Помогаю со студенческими работами здесь

В студии нет папки Graphics
У меня в студии 2010 почему то нет папки Graphics. Если у кого то есть, то дайте, пожалуйста....

проблема в том,что программа запоминает лишь 1 символ из слова
Всем привет!Вопрос простенький,делаю лабу в с++ тема классы.Код вроде реализовал все верно...

Переместить *.exe из папки debug
использую Embarcadero Rad Studio 2007. при компиляции создаётся папка debug в которой есть...

Антивирус удалил exe из папки Debug
Решил запустить программу не через Visual Studio, а напрямую из папки Debug проекта. Антивирус...

Почему программа не выводит сообщения о том,что той или иной цифры в числе нет,если в ней всё прописано?
int a, b, k, i,b1; int n; i = 0; b1 = 0; Console.Write(&quot;Введите...

Создание exe файла (ни в папке Release, ни в Debug ничего подобного нет)
Как создать в проекте WPF exe файл? Просто у меня в папке Release из типа Приложений только...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru