Ho una DLL dove uso AllocConsole() e cout per visualizzare i dati per scopi di debug.
Ha funzionato bene ma da quando ho aggiornato il mio compilatore (Visual Studio 2012) al più recente la dll mostra solo la console ma non le stampe/couts.
Sono fuori di idee sul perché questo sta accadendo.
Qualche idea? viene visualizzataAllocConsole() non visualizza il cout
parte del mio codice
__declspec(dllexport) INT APIENTRY DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved)
{
switch(Reason)
{
case DLL_PROCESS_ATTACH:
AllocConsole();
DisableThreadLibraryCalls(hDLL);
//
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)pSend, MySend);
if(DetourTransactionCommit() == NO_ERROR)
cout << "[" << MySend << "] successfully detoured." << endl;
Ma niente.
Ci in effetti ha funzionato. Dispari. Ma ha funzionato – madziikoy
'freopen (" CONIN $ "," r ", stdin);' funziona anche come previsto. –
Poiché '' freopen'' è depecrated (per problemi di sicurezza), dovresti usare '' freopen_s (& new_stdout, "CONOUT $", "w", stdout); '' dove '' new_stdout'' è un '' FILE' 'puntatore. – ub3rst4r