Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Please specify the executable file for the debug


Автор: bomberman 3.6.2008, 09:37
Приветствую! 
Наверное не обладаю могучим опытом Visual C++ (6.0) - гуру, посему и всплывает вопрос, 
отраженный в названии и в описании темы: дело в том, что при указании любого  этого 
самого "the executable file", например предлагается IEXPLORER (при создании, например,
DLL-исходника) вываливается сообщение о том, что для данного экзешника отсутствует 
отладочная информация, а если я все-таки нахожу экзешник для которого имеется так 
называемая отладочная информация, то при нажатии на F10 или F11 (отладка) происходит 
отладка совершенно другого исходника - а именно того, который принадлежит к экзешнику 
(который, видимо, и является частью "отладочной информации") 

Т.е. проблема заключается в том, как все-таки выполнить отладку (в моем случае DLL-исходника)

Спасибо за ответ!

Автор: ama_kid 3.6.2008, 09:48
эээ, ну так это... вообще-то нужно указывать тот exe-шник, который будет вызывать твою dll-ку... А что explorer знает о твоей библиотеке? 

Автор: bomberman 3.6.2008, 10:01
Согласен, коллега, но при указании этого экзешника, выполняется отладка исходника, из которого этот экзешник был создан:
например, я создал исходник:

// DLLMake.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    return TRUE;
}

а до этого я создал экзешник из исходника 

// DLLUse.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>

int main(int argc, char* argv[])
{
    HINSTANCE hLib = ::LoadLibrary("DLLMake.dll");
    return 0;
}

и данный экзешник подключил к исходнику DLLMake

При попытке начать отладку исходника DLLMake.cpp начинает отлаживаться
исходник DLLUse.cpp.

Автор: jonie 3.6.2008, 10:46
ну и? рядом с этим exe лежит отладочная иформация (pdb файл). он с него и тянет исходники. ставьте брекпоинты внутри кода длл, там и остановитесь (конечно, если exe использует именно вашу dll (и именно ту которую вы собрали в данный момент)).

Автор: ama_kid 3.6.2008, 10:48
Цитата(bomberman @  3.6.2008,  10:01 Найти цитируемый пост)
При попытке начать отладку исходника DLLMake.cpp начинает отлаживаться исходник DLLUse.cpp. 
То есть как это так? Проект автоматом открывается и начинает отлаживаться что ли? Такого не бывает имхо, по крайней мере я такого не видел ещё smile
Закройте проект екзешника и откройте только Dll, вполне возможно что были открыты оба проекта, а в качестве Startup Project был установлен именно exe-шник, вот он и запускается на отладку...

Автор: bomberman 3.6.2008, 11:00
Цитата(ama_kid @  3.6.2008,  10:48 Найти цитируемый пост)
Проект автоматом открывается и начинает отлаживаться что ли?

как правильно заметил jonie:
Цитата(jonie @  3.6.2008,  10:46 Найти цитируемый пост)
рядом с этим exe лежит отладочная иформация (pdb файл). он с него и тянет исходники


Пробовал ставить брекпоинты, как советовал jonie: прога просто выполняется, а на брейкпоинтах не останавливается 

Автор: dizzy1984 4.6.2008, 12:33
DLLUse.exe не видит DLLMake.dll? Попробуй положить ее в директорию с *.exe файлом. У тебя debug-версия *.dll? Брейкпоинты активные после запуска отладки *.dll?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)