GetIMEInputData の冒頭には以下のような if文があります
if( CharBuf.IMEUseFlag_OSSet == FALSE || CharBuf.IMESwitch == FALSE || CharBuf.ClauseNum == 0 ) return NULL ;
if( CharBuf.InputString[ 0 ] == 0 ) return NULL ;
この内、CharBuf.ClauseNum == 0 が悪さをしている気がしましたので、
CharBuf.ClauseNum が 0 でも NULL を返さないようにプログラムを
変更してみました
よろしければこちらのバージョンをお試しになってみてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)