我正在使用Java进行字节码操作/生成,我只是想知道是否有一种简单的方法可以检查字节码.我不想反编译文件,我想实际查看编译后的字节码.我不需要编辑它.任何用于执行此操作的链接或程序都是可接受的答案.
最近我对在java中创建.ico文件或Windows图标文件感兴趣.这是我使用的当前代码.我从这里获得了文件格式规范http://en.wikipedia.org/wiki/ICO_%28file_format%29
BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);
Graphics g = img.getGraphics();
g.setColor(Color.GREEN);
g.fillRect(0, 0, 16, 16);
byte[] imgBytes = getImgBytes(img);
int fileSize = imgBytes.length + 22;
ByteBuffer bytes = ByteBuffer.allocate(fileSize);
bytes.order(ByteOrder.LITTLE_ENDIAN);
bytes.putShort((short) 0);//Reserved must be 0
bytes.putShort((short) 1);//Image type
bytes.putShort((short) 1);//Number of image in file
bytes.put((byte) img.getWidth());//image width
bytes.put((byte) img.getHeight());//image height
bytes.put((byte) 0);//number of colors in color palette
bytes.put((byte) 0);//reserved must be 0
bytes.putShort((short) 0);//color planes
bytes.putShort((short) 0);//bits per pixel
bytes.putInt(imgBytes.length);//image size
bytes.putInt(22);//image offset
bytes.put(imgBytes);
byte[] result = …Run Code Online (Sandbox Code Playgroud) 我正在使用css和html设计一个网站.我已经设法使用此css在我的页面左侧获得了一个导航栏,但是当屏幕向下滚动时,导航栏不再继续.
#navbar {
background: #a8a599;
float: left;
width: 20%;
height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
但是,我想使导航栏的高度为文档的高度.我觉得我可能需要java脚本,但是我不熟悉java脚本,所以我不知道如何实现这一目标.我认为高度100%将占据整个页面,无论它只占用页面的可见部分.
如果您想查看页面的其余部分,请点击此处 http://jsfiddle.net/HRpXV/3/embedded/result/
我正在学习openGL,我遇到了使用顶点缓冲对象的三角扇.如果给定要渲染的顶点数组,openGL如何确定必须使用多少个顶点来构造三角形扇形.似乎可以使用顶点的任意数量.
我正在尝试检测类文件,但是我只是想知道注释以类文件格式存储在哪里。我尝试将它们放在接口表中,但是这样做的时候,它只能将它们识别为接口,而不是作为注释。
我刚刚开始学习 C++ 中的顶点缓冲区对象。我正在读一本关于 OpenGL 的书,它说 VBO 渲染比其他形式的渲染更有效,因为数据存储在 GPU 上而不是堆上。但是,我很困惑,如果您仍然必须将一组数据从堆加载到 GPU,这会是怎么回事。每隔几秒钟,我就会更新我程序的顶点数据,这意味着我必须随后使用glBufferData()来刷新数据以更新到新状态。我看不出这比正常渲染数组更有效率。我想知道我是否调用glBufferData()了不必要的调用,或者是否有更好的方法来直接在 GPU 上更新顶点数据。
我正在创建一个RPG类型的游戏,我目前正在世界一代.我正在寻找一种生成迷宫的好方法,用于生成森林.我看了几个算法,但似乎没有一个与tile一起使用.他们都与墙壁一起工作.我不能使用墙壁,因为通过移除一面墙我将不得不移除整个块,因为游戏仅由方形16*16像素块组成.目前最有希望的是dfs,但仍然需要墙壁.
编辑:为了澄清大多数算法的问题,他们认为路径的每个点都是一个单元格,单元格之间的墙壁不占用空间.在我的游戏中,墙壁占据与迷宫其他部分完全相同的大小.因此,我找不到适合于生成我想要生成的迷宫类型的算法.
我正在尝试编写一个简单的程序,作为在基类对象和派生类对象之间来回转换的演示.这是我的代码
#include "stdafx.h"
#include <iostream>
using namespace std;
class a
{
virtual void hi(){}
};
class b : public a
{
};
int main()
{
a abs = b();
b& bbs = dynamic_cast<b&>(abs);
while(true);
}
Run Code Online (Sandbox Code Playgroud)
代码编译得很好,但是当我运行它时,我在类Tests.exe中得到"0x75C4C41F处的未处理异常:Microsoft C++异常:std :: bad_cast在内存位置0x003DF908." 我看不出我做错了什么.任何人都可以向我解释为什么这不起作用.
我一直在研究java类文件格式.我一直在研究从字节码创建类.我已经能够从oracle文档和其他Google搜索中找到我需要的大部分信息.但是我无法找出构造函数在类文件中的存储方式和位置.我认为它们可能存储在方法表中,但我不确定,如果它们是我想要它们如何存储的说明.
我正在研究java字节码,当我注意到简单表达式Math.max(0,1)变成了下面的字节码指令.
ICONST_0,
ICONST_1,
INVOKESTATIC(java/lang/Math.max)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果java使用后进先出堆栈,这意味着1现在将位于堆栈上的0前面,这意味着vm必须在它调用最大值时反转堆栈中项目的顺序指令在1之前得到0但是在规范中,它说明了这一点,我的假设是正确的.
我知道这个问题已被问到很多,但我从未见过适合我需要的合适答案.我正在编写一个编译器和解释器以获得有趣的c ++,为了编写它们,我需要确保我使用的类型是8位,32位,64位等...我找到了,但是我已被警告,它可能无法在所有平台上运行.我也听说有些平台不支持这些大小的整数,但它必须是可能的,因为java设法实现这一点.不幸的是,java源代码不可用.
java ×6
bytecode ×4
c++ ×4
opengl ×2
.class-file ×1
annotations ×1
css ×1
html ×1
ico ×1
javascript ×1
navigation ×1
tile ×1
types ×1
vbo ×1