尝试使用AES128算法加密样本数据,在Android和iOS中使用CBC和PKCS7填充,但结果不同:(
Android代码:
private static final byte[] KEY = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10};
int srcBuffSiz = 1024;
byte[] srcBuff = new byte[srcBuffSiz];
Arrays.fill(srcBuff, (byte)0x01);
SecretKeySpec skeySpec = new SecretKeySpec(KEY, "AES");
Cipher ecipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
ecipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] dstBuff = ecipher.doFinal(srcBuff);
int bytesEncrypted = dstBuff.length;
Run Code Online (Sandbox Code Playgroud)
iOS代码:
// Source buffer
size_t srcBuffSiz = 1024;
unsigned char* srcBuff = new unsigned char[srcBuffSiz];
memset(srcBuff, 0x01, srcBuffSiz);
// Destination buffer
size_t dstBuffSiz = …
Run Code Online (Sandbox Code Playgroud) 这是一个代码:
users = {}
users["aaa"] = "bbbb";
users["bbb"] = "bbbb";
users["ccc"] = "bbbb";
print("Users count ", table.getn(users));
Run Code Online (Sandbox Code Playgroud)
为什么table.getn(用户)总是返回0?BTW,#users也返回0.那么,我做错了什么,还有另一种方法来获得数组中的元素数量?
初始化代码创建一个具有128x128像素的RGB单色纹理:
GLES20.glGenTextures ( 1, textureId, 0 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, textureId[0] );
GLES20.glTexImage2D ( GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGB, bitmap.getWidth(), bitmap.getHeight(), 0,GLES20.GL_RGB, GLES20.GL_UNSIGNED_BYTE, byteBuffer );|
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, 0 );
Run Code Online (Sandbox Code Playgroud)
初始化后我有适当的纹理,一切正常.在某些方面,我必须对纹理进行一些更改,甚至将其与其他图像完全替换:
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, textureId[0] );
GLES20.glTexImage2D ( GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGB, bitmap.getWidth(), bitmap.getHeight(), 0,GLES20.GL_RGB, GLES20.GL_UNSIGNED_BYTE, byteBuffer );|
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, 0 );
Run Code Online (Sandbox Code Playgroud)
但glTexImage2D不会对纹理进行任何更改并且不会返回错误.但是这个代码在我的iOS项目中正常工作,但是在android的情况下却没有.看起来我不能使用glTexImage2D(..)两次使用相同的纹理,换句话说,修改纹理的唯一方法是创建新纹理并删除旧纹理,但为什么它在iOS中正常工作?我的代码出了什么问题?
我试图在我的项目中使用va_start和va_end函数,但是eclipse不想将其解析为函数.gcc编译整个项目没有错误......
[MYFILE.CPP]
#include <stdio.h>
#include <stdarg.h>
[...]
inline void ShowDbgMsg( const char* str, ... )
{
va_list argptr;
va_start(argptr, str);
vprintf(str, argptr);
va_end(argptr);
}
[...]
Run Code Online (Sandbox Code Playgroud)
[Android.mk]
[...]
LOCAL_C_INCLUDES := jni/pvrTools/ jni/igel/ $(STLPORT_BASE)/stlport
[...]
Run Code Online (Sandbox Code Playgroud)
Eclipse说:
[...]
Description Resource Path Location Type
Function 'va_start' could not be resolved igel.comdef.h /NativeProject/jni/igel line 195 Semantic Error
Function 'va_end' could not be resolved igel.comdef.h /NativeProject/jni/igel line 203 Semantic Error
Function 'va_start' could not be resolved igel.string.h /NativeProject/jni/igel line 341 Semantic Error
Function 'va_end' could not …
Run Code Online (Sandbox Code Playgroud) 我有三个网格 A、B 和 C。每个网格都有自己的材质并由单个子网格组成。现在,我想创建一个新的网格,例如,每个网格(A、B 和 C)包含 10 个实例,并且它将由 3 个子网格组成,即每个类型的所有元素都有一个子网格。
为此,我使用“Mesh.CombineMeshes(...)”,但它将所有网格体组合成一个子网格体或为每个元素创建子网格体(即在我的情况下为 30 个子网格体)。这两个结果对我来说都是无法接受的。
我没有在Inno-Setup网站上找到有关DirectX安装的任何提示.那么,是否有任何示例安装脚本?我知道我必须添加[Run] sction这样的东西:
Filename: "{src}\DirectX\DXSETUP.exe"; WorkingDir: "{src}\DirectX"; Parameters: "/silent"; Check: DirectX; Flags: waituntilterminated; BeforeInstall: DirectXProgress;
Run Code Online (Sandbox Code Playgroud)
但是如何将它包含到安装文件(临时文件夹?)中,如何提取它等等?
我正试图在我的多平台库中使用这个非常棒的freetype 2版本.我还没有在Android上测试它,但我尝试在win32下编译并测试它.它编译得很好没有错误,但是当库试图读取TT_CMap的"数据"(总是坏指针)成员时它总是崩溃.它发生的功能仅取决于字体文件,即一种字体 - 一个地方.我尝试过来自Windows,MacOS X和Android的不同ttd字体,但它只会影响位置,会发生分段错误.例如,如果我尝试检索标准窗口arial.ttf字体的任何字符的索引,它将始终崩溃在这里:
static FT_UInt tt_cmap4_char_map_binary( TT_CMap cmap, FT_UInt32* pcharcode, FT_Bool next )
{
[...]
p = cmap->data + 6;
num_segs2 = FT_PAD_FLOOR( TT_PEEK_USHORT( p ), 2 );
[...]
Run Code Online (Sandbox Code Playgroud)
因为cmap-> data是无效的指针.
我的测试代码如下所示:
int error = 0;
// Initialize freetype library first
error = FT_Init_FreeType( &ft_lib );
if ( error ) {
ODF(("Unable to init freetype library! Error code is %d.\n", error));
return false;
}
// Load font file into the memory buffer
iMemBuff faceFileBuff;
if (igelLoadResource(iString("Data/arial.ttf"), …
Run Code Online (Sandbox Code Playgroud) 我有两个游标资源。第一个[IDC_CURSOR1]包含三种不同的图像类型:
第二个[IDC_CURSOR2]仅包含一个:
如果我正在调用LoadCursor(hInst,IDC_CURSOR1),它将始终加载32x32版本,而我找不到加载48x48或64x64版本的方法。在第二种情况下,它会加载48x48图标(因为没有其他版本),但会将其缩小到32x32。
如何加载非32x32分辨率的游标?
顺便说一句:我试图更改DPI,因为根据msdn,它应该自动以更高的dpi加载更高分辨率的光标,但事实并非如此。
谢谢!
有没有办法在项目文件夹之外重新定位我的源代码(包括所有.h .cpp和.mk文件)?换句话说,我想从android项目文件夹中移出jni文件夹的内容.现在,我的项目的物理结构如下所示:
.../ProjectFolder/AndroidProjectFolder/jni/(sources and make files)
.../ProjectFolder/AndroidProjectFolder/(other android project files)
.../ProjectFolder/iosProjectFolder/(other ios project files)
Run Code Online (Sandbox Code Playgroud)
我想这样做:
.../ProjectFolder/src/(sources and make files)
.../ProjectFolder/AndroidProjectFolder/(other android project files)
.../ProjectFolder/iosProjectFolder/(other ios project files)
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法呢?
android ×4
android-ndk ×2
aes ×1
c# ×1
c++ ×1
directx ×1
freetype2 ×1
gdi ×1
inno-setup ×1
installation ×1
ios ×1
lua ×1
winapi ×1
windows ×1