求助 Access Violation

tomqyp 2007-09-15
下面这段代码怎么改都会出错,为什么会这样啊
import 
	derelict.freetype.ft,
	derelict.sdl.sdl,
	derelict.sdl.ttf;


int main()
{
TTF_OpenFont(cast(char*)"sdgdfg.ttf".ptr, 123);
return 0;
}
player7 2007-09-15
试试 toStringz("sdgdfg.ttf")
tomqyp 2007-09-15
谢谢,我试了下toStringz也不行,我看TTF_OpenFont的C声明是const char*,按道理不会出这样的问题啊
qiezi 2007-09-15
这么简单都不行?应该是库的问题吧,头文件是否转换正确?
player7 2007-09-15
错误信息是什么啊?
DavidL 2007-09-15
楼主的代码写成了:
TTF_OpenFont(cast(char*)"sdgdfg.ttf".ptr, 123);
必须改成
TTF_OpenFont(toStringz("sdgdfg.ttf"),123);
"dfgdfg.ttf"是静态常量,后面有没有帮你补零就没有文档说明了,所以应该由运行时来确定,或者你
"sdfdfg.ttf"~cast(char)0x0什么的,大致是一定要确保后面有补C所需要的0
tomqyp 2007-09-15
谢谢,问题解决了,原来是个低级错误.

derelict封装的库都是动态从Dll加载的,load一下就行了,自己忘了.

说到底没有调试工具还是不方便哪,有个调试很容易就会发现TTF_OpenFont值是null.
DavidL 2007-09-15
楼上可以尝试descent
Global site tag (gtag.js) - Google Analytics