2009-04-29 3 views
4

Я использую Visual Studio 2008 (на Windows 2003 Server/32 бит) для компиляции библиотеки и после DLL будет произведен «Пользовательские сборки Шаг» -> «Общие» выполняет команду:Как отладить регистрацию regsvr32 post-compile DLL?

regsvr32/с/с "($ TargetPath)"

, который генерирует исключение:

необработанное исключение win32 произошло в regsvr32.exe [212].

Это вызывает сеанс отладки, который показывает очень мало информации.

Запуск regsvr32 из командной строки в CMD-окне вызывает исключение (хотя число на конце отличается).

Любые указатели оценили!

+0

Число в квадратных скобках в конце сообщения исключений является PID (идентификатор процесса) regsvr32.exe. – amolbk

ответ

10

Запустите dll в отладчике, установите regsvr32 в качестве цели отладки.

Вы хотите разместить точку останова в функции DllRegisterServer.

+0

Хе-хе, я думал, что это будет очевидно! :) – leppie

+0

@leppie: :-) Не мне! Я бы подумал, что сеанс автоматической отладки будет показывать ту же информацию, что и нет. –

+0

@gbjbaanb Спасибо! Это показывает гораздо больше информации ... хотя по какой-то причине функция DllRegisterServer, похоже, не вызвана. –

-1

Ваш код должен реализовать DllRegisterServer, добавить MessageBox там, и при запуске regsvr32 он должен быть удар, присоединиться к процессу в то время

+0

Нет. Как я уже сказал в комментариях к принятому ответу (еще в апреле 2009 года!), 'DllRegisterServer' никогда не вызывался, поэтому ваше решение не сработало. –