Re: !@# Мистика, да и только! Или как я краш пытаюсь отловить
От: b0r3d0m  
Дата: 31.08.16 13:16
Оценка:
Ну, это вообще пушка.

Оставил в проекте CrashRpt только следующий код:

CrashRpt.cpp

#include "stdafx.h"
#include "CrashRpt.h"

void invalid_parameter_handler(
  const wchar_t * expression,
  const wchar_t * function, 
  const wchar_t * file, 
  unsigned int line,
  uintptr_t pReserved
  )
{
  std::ofstream f("E:\\output.txt", std::ios_base::app);
  f << "Error" << std::endl;
}

CRASHRPTAPI(int) crInstallA(CR_INSTALL_INFOA* pInfo)
{
  std::ofstream f("E:\\output.txt", std::ios_base::app);
  f << "1" << std::endl;
  _set_invalid_parameter_handler(invalid_parameter_handler); 
   f << "2" << std::endl;
  return 0;
}

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


stdafx.cpp

#include "stdafx.h"


stdafx.h

#pragma once

#include <Windows.h>


CrashRpt.def

EXPORTS   

   crInstallA                     @8


В CrashRpt.h лежат объявления функций, структуры и макросы.

Пересобрал, слинковал с минимальным примером.

1 и 2 попадают в файл, "Error" -- нет.

Настройки проекта выставил дефолтными для чистого DLL-проекта, создаваемого в Visual Studio.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.