小编and*_*ndy的帖子

在Android NDK上将全局变量初始化为零

我正在使用普通C和最新的Android NDK开发应用程序.我注意到*.so永远不会从内存中刷新,因此全局变量会保留上次运行应用程序的值,例如考虑以下代码:

static int init = 0;

void android_main(struct android_app* state)
{
  init = 1;
  dostuff();
}
Run Code Online (Sandbox Code Playgroud)

当我的应用程序第一次启动时,"init"为0并设置为1.从第二次运行开始,"init"将始终为1,因为*.so仍在内存中.但是每当调用android_main()时,我希望全局变量重置为默认值!

那么有没有办法确保在调用android_main()之前总是重置全局变量,还是我必须手动执行此操作?(这对我的应用程序来说是一项巨大的工作,因为我有大量的全局变量分布在不同的*.c来源)

谢谢!

android android-ndk

6
推荐指数
2
解决办法
3201
查看次数

将字符串发送到另一个应用程序的最简单方法是什么?(Win API)

我有两个用简单C编写的Win32 API程序:程序A和程序B.我希望程序B将字符串"Hello World"发送到程序A.所以B需要执行以下操作:

1)检测程序A是否正在运行.

2)如果是,请将"Hello World"字符串发送给A.

3)如果A未运行,B应显示错误消息.

有人能指出我这样做的必要API函数吗?我如何在两个程序之间建立这样的通信?我认为最大的问题是"Hello World"字符串在程序B的地址空间中,并且它需要移动到A的地址空间.所以只是传递一个内存指针是不够的......我需要一个不同的做法.有任何想法吗?

谢谢

c api winapi ipc

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

标签 统计

android ×1

android-ndk ×1

api ×1

c ×1

ipc ×1

winapi ×1