Re: DrawKeyInputStringのエラー ( No.1 ) |
- 名前:管理人 日時:2017/08/02 00:56
ご指摘ありがとうございます
ただ、以下のようなシンプルなプログラムをUnicode版で実行してみたのですが、
手元の環境では現象を再現することができませんでした
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 文字列入力ハンドルの作成
int KeyInputHandle = MakeKeyInput( 64, 0, 0, 0 ) ;
// 作成したキー入力ハンドルをアクティブにする
SetActiveKeyInput( KeyInputHandle ) ;
// メインループ
while( ProcessMessage() != -1 )
{
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 画面をクリア
ClearDrawScreen() ;
// 入力中の文字列を描画
DrawKeyInputString( 0, 0, KeyInputHandle ) ;
// IMEの入力モードの描画
DrawKeyInputModeString( 640, 480 ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
試した手順は以下のようなものなのですが、Tirさんがエラーを確認された際の手順と合っていますでしょうか?
1.プログラムが起動したら「半角/全角」キーを押してIMEをONにする
2.「無変換」キーを押して半角カタカナの入力モードにする
3.半角のカタカナを何文字か入力する
4.エンターキーで半角カタカナの入力を確定
5.「無変換」キーを何回か押して全角ひらがなの入力モードにする
6.全角のひらがなを入力する
7.エンターキーで全角ひらがなの入力を確定
|
Re: DrawKeyInputStringのエラー ( No.2 ) |
- 名前:Tir 日時:2017/08/02 11:30
申し訳ありません半角カタカナではなく半角英数です…
また確実に発生する訳ではありませんし条件も確定ではありません。
上記のプログラムを試したところ
1.プログラムが起動したら「半角/全角」キーを押してIMEをONにする
2.適当にZキーなどのキーを押す
これだけでエラーが発生しました。エラーの発生個所は違いましたが…
ttp://i.imgur.com/dl1Hlio.jpg
恐らくですがDXライブラリの最新版でのみ発生するかもしれません。
最初既にあった以前のバージョンのサンプルテスト用のDXライブラリで上記のプログラムを試したところ正常に動作しました
|
Re: DrawKeyInputStringのエラー ( No.3 ) |
- 名前:管理人 日時:2017/08/04 00:52
ご返答ありがとうございます
DrawKeyInputModeString の中ですか…
> 1.プログラムが起動したら「半角/全角」キーを押してIMEをONにする
> 2.適当にZキーなどのキーを押す
> これだけでエラーが発生しました。エラーの発生個所は違いましたが…
何度か試してみたのですが、やはりエラーは発生しませんでした
> 恐らくですがDXライブラリの最新版でのみ発生するかもしれません。
最新版とは、正式公開されている最新バージョン( Ver3.18c )でしょうか?
それともこちらの掲示板でちょくちょくアップしているテスト版( 暫定最新版 )でしょうか?
> 最初既にあった以前のバージョンのサンプルテスト用のDXライブラリで上記のプログラムを試したところ正常に動作しました
こちらは『DrawOval関数について』のスレッドで No.1 の書き込みのタイミングでアップされていたテスト版でしょうか?
あと、こちらにDXライブラリのソース込みで No.1 のテストプログラムをビルド・実行する
プロジェクトをアップしてみました
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
ファイルは自己解凍形式となっていて、実行すると DxLibSourceTest という名前のプロジェクトフォルダが作成されます
大変お手数で申し訳ありませんが、もしよろしければフォルダの中にある DxLibSourceTestVS2017.sln を開いていただき
デバッグ実行をして、件の手順でエラーが発生した際のDXライブラリのソースファイル名と行番号を教えて頂けないでしょうか? m(_ _;m
|
Re: DrawKeyInputStringのエラー ( No.4 ) |
- 名前:Tir 日時:2017/08/04 01:40
バージョンは正式に公開されているVer3.18cです。
サンプルプログラム実行用のプロジェクトはどのバージョンかは覚えていませんが
『DirectX11の機能について』時点でのDXライブラリバージョン(確かVer3.18)のプロジェクトで実行したらエラー落ちすることはありませんでした
そして上記のプロジェクトで実行したところDxInputString.cppの1474行目でエラーが発生しました。一応画像も載せておきます。
ttp://i.imgur.com/xCD3QLD.jpg
|
Re: DrawKeyInputStringのエラー ( No.5 ) |
- 名前:管理人 日時:2017/08/06 04:20
|
Re: DrawKeyInputStringのエラー ( No.6 ) |
- 名前:Tir(解決) 日時:2017/08/06 10:19
対応ありがとうございます。
> 止まっている箇所は『変換候補を表示する』処理なので、zを入力しただけでは普通に考えると変換候補は
> 表示されない筈なので、なぜここにきてしまっているのか謎です
実は制作中のプロジェクトの方で実行すると変換候補が梵字みたいになったりしてました。
zキーを押しただけでこうなります。
ttp://i.imgur.com/HjyX6sv.jpg
サンプルプログラムの方は正常に動きましたし制作中のプロジェクトも今の所エラー落ちはしていません。
ただ制作中のプロジェクトでは確実に発生する訳ではありませんでしたし。上記の画像のように変換候補がおかしくなっていても
落ちずに動作したり、そもそもDrawKeyInputStringでエラーが発生していたりしていたので多少不安は残りますが
恐らくこれで大丈夫だと思いますので解決とさせて頂きます。
|
Re: DrawKeyInputStringのエラー ( No.7 ) |
- 名前:yumetodo 日時:2017/08/06 12:59
どこかでCP932<->UTF16の変換をミスっているのだろうか・・・
|
Re: DrawKeyInputStringのエラー ( No.8 ) |
- 名前:Tir 日時:2017/08/07 00:40
すみません。新しいバージョンを試したところ全く関係ないところで効果音が一定間隔で鳴り続ける不具合が発生しました。
バージョンを元に戻すと直ります。効果音を鳴らす部分は関数にまとめているのでそこにブレークポイントを入れても引っかかりません。
これは元々僕のプログラムに問題があって変なところを参照しているのをDXライブラリの構造が変わって効果音を鳴らす所を参照しているって事でしょうか…
追記
色々調べたところ効果音そのものが原因でした。何故か特定の効果音を今回修正したDXライブラリで鳴らすと鳴り続けるみたいです。
|
Re: DrawKeyInputStringのエラー ( No.9 ) |
- 名前:管理人 日時:2017/08/07 00:46
> 実は制作中のプロジェクトの方で実行すると変換候補が梵字みたいになったりしてました。
> zキーを押しただけでこうなります。
> ttp://i.imgur.com/HjyX6sv.jpg
エラー落ちはしなくなったのは何よりですが、まだ完全には直せていないようです…
私の環境で現象が発生しないのは使用しているOSやIMEが異なるからかもしれないので、
よろしければTirさんがお使いの環境のOSと使用されているIMEを教えて頂けないでしょうか?
( Windows10 で GoogleIME ( 又は ATOK )、など )
> どこかでCP932<->UTF16の変換をミスっているのだろうか・・・
IMM32 の代わりに最近使い始めた Tsf( Text Services Framework ) をまだ正しく使えてないのだと思います…
> 色々調べたところ効果音そのものが原因でした。何故か特定の効果音を今回修正したDXライブラリで鳴らすと鳴り続けるみたいです。
最近 wav ファイルの中にループポイント( smplチャンク )の情報が含まれていると
その情報を元にループ再生するようにするようにしたので、恐らくその影響ではないかと思います
( 少し前には Ogg ファイルのループポイント情報にも対応したので、そちらかもしれませんが )
wav ファイルのループポイントの設定は編集は『Wavosaur』というソフトでできるようですので、
wav ファイルでしたらよろしければご確認になってみてください m(_ _)m
|
Re: DrawKeyInputStringのエラー ( No.10 ) |
- 名前:Tir 日時:2017/08/07 00:55
使用OSはWindows10でMicrosoft IMEです。
効果音の方はメモリ関係のバグじゃなくて安心しました。
|
Re: DrawKeyInputStringのエラー ( No.11 ) |
- 名前:管理人 日時:2017/08/10 21:55
|
Re: DrawKeyInputStringのエラー ( No.12 ) |
- 名前:Tir(解決) 日時:2017/08/11 12:59
上記のバージョンで無事にzなどの1文字の場合変換候補が出現しないことが確認できました。
|