Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 72

Не работают exe файлы и в Debug и в Release

11.08.2014, 16:35. Показов 2324. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребят, есть проблема, о которой я уже писал! Не работают exe файлы и в Debug и в Release. Кое что я уже понял, если прописывать загружаемые файлы текстур вместе с путем вот так:
C++
1
2
3
    D3DXCreateTextureFromFileEx(pDirect3DDevice, "C:/Users/Anton/Documents/Visual Studio 2010/Projects/MyProgectSprite/OpeningScreen.bmp",
                                D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT,
                                D3DX_DEFAULT, D3DCOLOR_ARGB(255,255,255,255), NULL, NULL, &openingTexture);
То все нормально, екзешники работают, но стоит написать так:
C++
1
2
    D3DXCreateTextureFromFileExA(pDirect3DDevice, "Graphics/OpeningScreen.bmp", D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, 
                                D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, D3DCOLOR_ARGB(255,255,10,10), NULL, NULL, &openingTexture);
То они перестают работать. В чем проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2014, 16:35
Ответы с готовыми решениями:

Почему Release и Debug работают по разному
Уже не в первый раз происходит так, что откомпилированный в режиме Release проект работает не так как то же самое откомпилированное в...

Как работают Debug\Release конфигурации
Привет друзья! Начал изучать C# (до этого кодил на Adobe Flex SDK, actionscript). Хочу ясно представлять как работают Debug\Release...

Отличие Debug и Release версий exe
Уважаемые подскажите пожалуйста отличие Debug от Release версий exe, dll. Насколько я понимаю работать будут обе, только Release будет...

5
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
11.08.2014, 17:37
Если не указан полный путь, то предполагается текущий каталог,
обычно это тот, в котором находится exe (если запускаете из командной строки)
или тот, в котором находится проект (если запускаете из VS).
Т.е. если exe находится в каталоге c:/temp/debug/,
то bmp надо положить в папку c:/temp/debug/Graphics/ или c:/temp/Graphics/ соответственно.
1
318 / 180 / 73
Регистрация: 18.01.2014
Сообщений: 387
11.08.2014, 18:41
Если правильно понимаю, то у вас планируется такая структура:
Папка
--- исполняемый файл
--- Папка Graphics
------ файлы графики

Получите полный путь к папке, где лежит исполняемый файл, дополните его путем до нужной текстуры и передавайте в функцию создания текстуры.

Можете использовать функции WinAPI: GetModuleFileName и т.д.

В общем, положите свою папку с текстурами рядом с exe и сообразите что-нибудь типа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    #define BUFSIZE (MAX_PATH + 1)
    
    TCHAR  dirname[BUFSIZE];
    TCHAR  texturename[BUFSIZE];
 
    // получаем папку, в которой лежит екзежник
    GetModuleFileName(NULL, dirname, BUFSIZE);
    int p = _tcslen(dirname);
    while (dirname[--p] != '\\') ;
    dirname[p] = 0;
 
    // формируем имя текстуры
    _sntprintf(texturename, BUFSIZE, _T("%s\\Graphics\\OpeningScreen.bmp"), dirname);
 
    // грузим текстуру
    D3DXCreateTextureFromFileExA(pDirect3DDevice, texturename, ...);
можно еще попробовать

C++
1
2
3
4
5
6
7
8
9
10
11
    // получаем папку, в которой лежит екзежник
    GetModuleFileName(NULL, dirname, BUFSIZE);
    int p = _tcslen(dirname);
    while (dirname[--p] != '\\') ;
    dirname[p] = 0;
 
    // меняем текущую папку
    SetCurrentDirectory(dirname);
 
    // грузим текстуры используя короткие имена
    D3DXCreateTextureFromFileExA(pDirect3DDevice, _T("Graphics\\OpeningScreen.bmp"), ...);
Желательно также проверять ошибки всех API вызовов.
0
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 72
11.08.2014, 18:47  [ТС]
Спасибо!))
0
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 72
12.08.2014, 01:15  [ТС]
BlackIce, спасибо, ошибка была в том, что папка graphics не лежала в папке с екзешником, когда я ее добавил, и без дополнительных манипуляций все прошло)) а к стати, я никогда не проверял апи ф-ции на ошибки, можете небольшой пример дать?
0
318 / 180 / 73
Регистрация: 18.01.2014
Сообщений: 387
12.08.2014, 10:47
Цитата Сообщение от Антон219 Посмотреть сообщение
когда я ее добавил, и без дополнительных манипуляций все прошло
Вы уверены, что на этом ваши мучения закончатся? Вам же уже писали в другом топике (кстати, вы совершенно напрасно наплодили столько одинаковых тем, очень трудно, да и лень по ним скакать):

Цитата Сообщение от Убежденный Посмотреть сообщение
Очевидно же, указывать относительные пути "Graphics/OpeningScreen.bmp"
имеет смысл только в том случае, если current directory программы совпадает с
папкой, где она находится. А это далеко не всегда так. Поэтому всегда
используйте абсолютные пути и таких проблем не будет.
Рано или поздно эта проблема вылезет, если не у вас, то у кого-нибудь другого, кому вы дадите свою программу. Так что используйте абсолютные пути, как получить путь к файлам, вам показал.

Цитата Сообщение от Антон219 Посмотреть сообщение
я никогда не проверял апи ф-ции на ошибки
Это печально Вот поэтому вы и не знаете причин, по которой в одном случае ваша программа работает нормально, а в другом грохается.

Цитата Сообщение от Антон219 Посмотреть сообщение
можете небольшой пример дать?
C++
1
2
3
4
5
6
HRESULT result = D3DXCreateTextureFromFileExA(pDirect3DDevice, ...);
if (result != D3D_OK) {
  // что-то пошло не так, здесь выдаем диагностическое сообщение
  // если ошибка фатальная (ну не может программа работать без текстур), то аварийно завершаем приложение
  ...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2014, 10:47
Помогаю со студенческими работами здесь

Почему некоторые методы в Release не работают, тогда как в Debug все нормально?
Всем привет! Пришло время узнать, а собственно почему некоторые методы в Reliase не работают, так как в Debug все нормально... Вот к...

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

Чем отличаются ЕХЕ файлы в папках Debug и Release?
Они имеют разный размер и разную скорость работы. А в принципе, в чем разница? Они ведь работают одинаково.

Как добавить папку и файлы в конечный продукт (release, debug)?
Я решил попробовать проект упаковки проектов в студии. у меня есть проект, внутри сборки которой есть папка с картинками и бинарными...

Необходимо сохранять exe не в папках debug/release, а в папке с исходниками или другое решение
Здравствуйте. В последниях версиях билдера exe и вспомогательные файлы стали сохраняться в папках debug или release в зависимости от...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru