es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿WriteConsole no funciona con PowerShell ISE?

WriteConsole no funciona con PowerShell ISE.

Ni WriteConsoleW ni WriteConsoleA tampoco funcionan.

Por ejemplo, vea este programa:

“`c++

<h1>#include <iostream></h1>

<h1>#include <Windows.h></h1>

void w() {
DWORD written;
BOOL const success = WriteConsoleW(GetStdHandle(STD<em>OUTPUT</em>HANDLE), L"Impreso\n", 8, &written, nullptr);
std::wcout << (success ? L"Éxito" : L"Fracaso") << L". Escribió " << written << L" caracteres." << std::endl;
}

void a() {
DWORD written;
BOOL const success = WriteConsoleA(GetStdHandle(STD<em>OUTPUT</em>HANDLE), "Impreso\n", 8, &written, nullptr);
std::cout << (success ? "Éxito" : "Fracaso") << ". Escribió " << written << " caracteres." << std::endl;
}

int main() {
w();
a();
return 0;
}
“`

Ejecutado desde PowerShell (o Command Prompt, o Git Bash), muestra:

Impreso
Éxito (escribió 8 caracteres)
Impreso
Éxito (escribió 8 caracteres)

Pero desde PowerShell ISE:

Fracaso (escribió 0 caracteres)
Fracaso (escribió 0 caracteres)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La función WriteConsole, específicamente WriteConsoleW y WriteConsoleA, no funciona con PowerShell ISE. Cuando se utiliza WriteConsole en el código, se imprimirá correctamente al ejecutarse desde PowerShell, Command Prompt o Git Bash, pero al ejecutarse desde PowerShell ISE fallará e imprimirá “Failure (wrote 0 characters)”.

Comments are closed.