前、質問させていただいてコンソールに入力した文字をsoftalkwが読み上げる。というところまでは簡単にできたのですが、今度、コンソールに入力した文字をDxLibで描画するというのをやりたいのですがなぜだか動作が不安定です。
ソースコード
C/C++
1#include "DxLib.h" 2#include <iostream> 3 4std::string word, out; 5 6int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) 7{ 8 AllocConsole(); 9 freopen( "CONOUT$", "w", stdout ); 10 freopen( "CONIN$", "r", stdin ); 11 12 ChangeWindowMode( TRUE ); 13 if ( DxLib_Init() == -1 ) return -1; 14 SetDrawScreen( DX_SCREEN_BACK ); 15 SetFontSize( 40 ); 16 17 while ( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { 18 ClearDrawScreen(); 19 std::cin >> word; 20 out = "softalkw /W:" + word; 21 system( out.c_str() ); 22 23 DrawFormatString( 0, 0, GetColor( 255, 255, 255 ), "%s", word ); 24 ScreenFlip(); 25 } 26 DxLib_End(); 27 return 0; 28}
実際には、一回目の入力はスムーズにいき、読み上げも普通にされるのですが、二回目以降入力しても文字が表示されなかったり(それがあとになって入力される)DxLibのほうが、「応答なし」になったりします。この不安定さをなくすにはどうしたらいいでしょうか?
AllocConsole()に関しては(fopen()なども)使い方や意味がよくわかっていません・・・
あなたの回答
tips
プレビュー