小编Tut*_*men的帖子

AES加密在iOS和Android中产生不同的结果

尝试使用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)

android aes ios

9
推荐指数
1
解决办法
6408
查看次数

如何在LUA中获取数组的大小?

这是一个代码:

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.那么,我做错了什么,还有另一种方法来获得数组中的元素数量?

lua

7
推荐指数
1
解决办法
3万
查看次数

在OpenglES2中使用glTexImage2D(..)更新纹理[Android]

初始化代码创建一个具有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中正常工作?我的代码出了什么问题?

android opengl-es-2.0

6
推荐指数
1
解决办法
8838
查看次数

Android NDK:函数va_start/va_end无法解析

我试图在我的项目中使用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)

android android-ndk

4
推荐指数
1
解决办法
3742
查看次数

在 Unity3D 中组合多个网格并保留材质

我有三个网格 A、B 和 C。每个网格都有自己的材质并由单个子网格组成。现在,我想创建一个新的网格,例如,每个网格(A、B 和 C)包含 10 个实例,并且它将由 3 个子网格组成,即每个类型的所有元素都有一个子网格。

为此,我使用“Mesh.CombineMeshes(...)”,但它将所有网格体组合成一个子网格体或为每个元素创建子网格体(即在我的情况下为 30 个子网格体)。这两个结果对我来说都是无法接受的。

c# unity-game-engine

3
推荐指数
1
解决办法
7300
查看次数

如何从Inno-setup安装DirectX可再发行组件?

我没有在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)

但是如何将它包含到安装文件(临时文件夹?)中,如何提取它等等?

directx installation inno-setup

2
推荐指数
1
解决办法
4970
查看次数

尝试访问字符映射时,freetype 2库崩溃

我正试图在我的多平台库中使用这个非常棒的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)

c++ freetype2

2
推荐指数
1
解决办法
1620
查看次数

以一定的分辨率加载光标

我有两个游标资源。第一个[IDC_CURSOR1]包含三种不同的图像类型:

  • 32x32、24 bpp
  • 48x48、24 bpp
  • 64x64、24 bpp

第二个[IDC_CURSOR2]仅包含一个:

  • 48x48、24 bpp

如果我正在调用LoadCursor(hInst,IDC_CURSOR1),它将始终加载32x32版本,而我找不到加载48x48或64x64版本的方法。在第二种情况下,它会加载48x48图标(因为没有其他版本),但会将其缩小到32x32。

如何加载非32x32分辨率的游标?

顺便说一句:我试图更改DPI,因为根据msdn,它应该自动以更高的dpi加载更高分辨率的光标,但事实并非如此。

谢谢!

windows winapi gdi

2
推荐指数
1
解决办法
435
查看次数

Android NativeActivity项目中的源代码位置

有没有办法在项目文件夹之外重新定位我的源代码(包括所有.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 android-ndk

1
推荐指数
1
解决办法
597
查看次数