我已经很长一段时间没有使用 C 和汇编语言进行编程了(大约 2 年)。现在我决定重新开始,但我想做一些更复杂的事情。我考虑过创建一个简单的内核。现在我在网上找到了这个源代码:
启动.asm:
global loader
extern kernel_main
MAGIC equ 0xbad
FLAGS equ 0x3
CHECKSUM equ -(MAGIC+FLAGS)
section .text
align 4
dd MAGIC
dd FLAGS
dd CHECKSUM
loader:
call kernel_main
cli
quit:
hlt
jmp quit
Run Code Online (Sandbox Code Playgroud)
内核.c:
void print(char *text) {
char *memory = (char*)0xb8000;
while(*text) {
*memory++ = *text++;
*memory++ = 0x3;
}
}
void kernel_main() {
print("My cat sometimes smells like cafe. I love it.");
}
Run Code Online (Sandbox Code Playgroud)
链接器.ld:
ENTRY(loader)
SECTIONS {
. = 0x100000;
.text : { *(.text) …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试Class.getMethod用作吸气剂。
我尝试使用这种方法:
//This works fine
Class<?> c = Class.forName("Cat");
//This is not working
Cat cat = c.getMethod("getCat");
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我在网上找不到任何有用的东西,所以我提了一个问题。如何从资源文件夹读取文件?我有一个源文件夹(src)和一个资源文件夹(res)。两者都在Java中指定为源文件夹。我尝试使用:new File(Main.class.getClassLoader().getResource("shader.glsl").getFile());
但是没有用。请不要太严格,只问我是否忘了提些什么。提前致谢。
编辑:这些是我得到的错误:
java.io.FileNotFoundException: shader.glsl (Das System kann die angegebene Datei nicht finden)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at com.leocat.game.shader.ShaderProgram.loadShader(ShaderProgram.java:54)
at com.leocat.game.shader.ShaderProgram.init(ShaderProgram.java:18)
at com.leocat.game.shader.StaticShader.init(StaticShader.java:8)
at com.leocat.game.states.GameState.init(GameState.java:29)
at com.leocat.game.Game.init(Game.java:91)
at com.leocat.game.Game.updateGLFW(Game.java:60)
at com.leocat.game.Game.run(Game.java:132)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)