2009-05-31 5 views
5

setText("")를 호출D에서 빈 문자열을 전달하는 방법은 무엇입니까? (gtkD에)

는 런타임 오류

Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed 

이유를 제기, 포보스

나는 텍스트 입력 필드, gtk.Entry.Entry의 인스턴스가와 D1을 사용하십니까? 그것은 D와 함께 문제가있는 것, 나는 이것을 시도 :

string empty = ""; 
assert (empty != null); 
my_entry.setText(empty) 

어설 션으로 프로그램이 종료되었습니다.

어떻게 해결할 수 있습니까?

답변

5

D는 "빈 문자열"과 "null 문자열"을 구분하지 않는다고 생각합니다. 값싼 해결 방법은 setText ("")입니다.

[편집] 신경 쓰지 마세요. gtkD의 버그입니다. trunk/src/glib/Str.d (찾음을 위해 wm4를 주셔서 감사합니다)에서 147 행을 변경하여 ""; (.dup를 제거하십시오).

1

나는 "\0"를 사용하고는, 어떤 보이지 않는 문자가 텍스트 필드에 도착하면 나도 몰라

를 작동 듯하지만 이것은 C에서 빈 문자열 그냥 \0

있다는 가정에 기초
3

assert (empty! = null) 대신 assert (empty! is null)를 써야합니다.

관련 문제