D에서 빈 문자열을 전달하는 방법? (GTKD에)
문제
Phobos와 함께 D1 사용
텍스트 입력 필드, 인스턴스가 있습니다 gtk.Entry.Entry
,
부름 setText("")
런타임 오류가 발생합니다
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
왜요? D의 문제인 것 같습니다. 나는 이것을 시도했습니다.
string empty = "";
assert (empty != null);
my_entry.setText(empty)
주장이 실패하면서 프로그램이 종료되었습니다.
이 문제를 어떻게 해결할 수 있습니까?
해결책
D가 "빈 문자열"과 "널 스트링"을 실제로 구별한다고 생각하지 않습니다. 저렴한 해결 방법은 setText ( "")입니다.
편집] 절대 이해하지 못합니다. GTKD의 버그입니다. 트렁크/src/glib/str.d (찾은 wm4에 감사)에서 147 행을 변경하여 ""; (.dup을 제거).
다른 팁
당신은 assert (empty! = null) 대신 assert (empty! is null)를 작성해야합니다.
나는 사용했다 "\0"
그리고 그것은 작동하는 것 같았습니다.
보이지 않는 캐릭터가 텍스트 필드에 들어간 지 모르겠지만 이것은 C의 빈 문자열이 단지 단지라는 가정에 근거합니다. \0
제휴하지 않습니다 StackOverflow