Mam DLL, gdzie używam AllocConsole() i cout do wyświetlania danych do celów debugowania.
Zwykle działa dobrze, ale od czasu aktualizacji mojego kompilatora (Visual Studio 2012) do najnowszej biblioteki dll po prostu pokazuje konsolę, ale nie drukuje/couts.
Nie mam pojęcia, dlaczego tak się dzieje.
Każdy pomysł? zostanie wyświetlonyAllocConsole() nie wyświetla cout
Część mojego kodu
__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;
ale nic.
Będziemy To faktycznie pracował. Dziwny. Ale pracował. – madziikoy
'freopen (" CONIN $ "," r ", stdin);' działa również zgodnie z oczekiwaniami. –
Ponieważ '' freopen'' jest depecrowany (ze względów bezpieczeństwa), powinieneś użyć '' freopen_s (& new_stdout, "CONOUT $", "w", stdout); '' gdzie '' new_stdout'' jest plikiem '' FILE' 'wskaźnik. – ub3rst4r