我尝试在我自己的android应用程序中添加和编译ffmpeg库.当我添加本机支持并在jni中添加ffmpeg库时,Eclipse会显示许多错误,例如:
uint8_t *bufferConverted=NULL;
static GLuint textureConverted=0;
Run Code Online (Sandbox Code Playgroud)
错误:
Type 'uint8_t' could not be resolved
Symbol 'NULL' could not be resolved
Type 'GLuint' could not be resolved
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我正在尝试使用镜像来调用我的类MyClass的方法s1,参数为s2.Java抱怨String.TYPE不存在.我检查了API并且它是正确的:我不能做与调用Integer.TYPE时相同的事情.但是我怎么能解决这个问题呢?我需要类型为String的类型,否则该方法会抛出异常.
public void trying(MyClass method, String s1, String s2){
try {
Class cls = Class.forName("MyClass");
Class partype[] = new Class[1];
partype[0] = String.TYPE;
Method meth = cls.getMethod(s1, partype);
meth.invoke(methobj, s2);
}
catch (Throwable e) {
System.err.println(e);
}
}
Run Code Online (Sandbox Code Playgroud) 我使用下面的代码从一个二进制文件复制到另一个,但第一个文件包含一些EOF指示符(0xFF)作为其一部分,因此复制功能实际上复制文件直到它的第一个EOF指示符.
例如:如果我的文件{0x01, 0x02, 0x03, 0xFF, 0x01, 0x02, 0xFF, 0xFF}只是{0x01, 0x02, 0x03}将被复制到新文件.任何想法如何解决它(或者我可能在那里遗漏了一些......)
码:
int Util_Copy_File(char* source, char* dest)
{
FILE *fs,*ft;
char ch;
char infile[100];
sprintf(infile, "%s", dest);
fs = fopen(infile,"r");
if(fs==NULL)
{
return -1;
}
ft = fopen(dest,"w");
if(ft==NULL)
{
fclose(fs);
return STATUS_FAIL;
}
while(1)
{
ch = getc(fs);
if(ch==EOF)
{
break;
}
else
putc(ch,ft);
}
fclose(fs);
fclose(ft);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢,Binyamin
我有一个用C编写的程序,它包含2个函数,一个函数是main(),另一个函数是预编译函数,存储为字节数组(让我们称之为varFunc()).指向数组的指针在main函数中被转换为函数指针,然后从main函数中调用它.(见下面的代码)
现在,我知道有操作系统和一些处理器不允许从数据部分执行代码,我varFunc应该就在那里......
有没有办法使用C语言让C编译器在代码/文本部分添加一些变量?如果没有,有没有办法在大多数编译器中通过编译器强制执行?
char varFuncArr[] = { 0xDE, 0x67, 0x6F, 0x6F, 0xAC, 0x13, 0x05, 0x01, 0xDA, 0xF0, 0xBD, 0x79, 0xA9, 0x10, 0x00, 0x00, 0xB8, 0x74, 0x00, 0x00, 0x00, 0x3F, 0x58, 0x13, 0xEA, 0x0A, 0x2E, 0xEE, 0xC7, 0x01, 0x05, 0xD0, 0x6E, 0xB8, 0x9E};
typedef unsigned long (*funcPtr)(void* d[]);
int main(int argc, char** argv)
{
unsigned int ra[8];
funcPtr varFunc;
for (i=0; i<8; i++)
ra[i] = 0;
varFunc = (funcPtr)varFuncArr;
return varFunc(ra); …Run Code Online (Sandbox Code Playgroud) 我创建了一个java类'store',它只存储我通过2个微调器给出的值和一个edittext ...我使用parcelable将该类的对象传递给中间类Spinpizza.java,然后是Bill.java ...... .它显示正确的输出,直到SpinPizza ...(显示通过微调器编辑文本输入的值),但它在Bill.java中给出了点指针:(请帮助我......我坚持了4天以上. .
这是我的代码......
Store.java
package com.Lak;
import android.os.Parcel;
import android.os.Parcelable;
public class store implements Parcelable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String pizzaname;
private String pizzasize;
private int n;
public void setOrder(String name,String size,int qty)
{
pizzaname = name;
pizzasize = size;
n = qty;
}
public String getPizzaName()
{
return pizzaname;
}
public int getQuantity()
{return n;}
public String getPizzaSize() {
// TODO Auto-generated method stub
return pizzasize;
} …Run Code Online (Sandbox Code Playgroud) 我是一个非常新的线程世界的人,一直试图解决这个问题一个星期了.
Thread类中的run方法由于某种原因没有被调用,我不知道为什么(但是很想知道)
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("/bin/sh", "-c", "echo \"w30000001z,none,16488,,181075\nw30000001z,none,16488,,181082\n\" | /home/beehive/bin/exec/tableSize");
Process process = processBuilder.start();
process.waitFor();
InputStream stdin = process.getInputStream();
OutputStream stdout = process.getOutputStream();
InputStream stderr = process.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdin));
BufferedReader error = new BufferedReader(new InputStreamReader(stderr));
StreamGobbler errorStream = new StreamGobbler(process.getErrorStream(), "ERROR");
StreamGobbler outputStream = new StreamGobbler(process.getInputStream(), "OUTPUT");
errorStream.start();
outputStream.start();
errorStream.join();
outputStream.join();
Run Code Online (Sandbox Code Playgroud)
tableSize是一个python可执行文件,它通过stdin获取输入,处理它并输出几行文本.我需要收集此输出并对其进行进一步处理.
有一个单独的线程来处理inputStream和errorStream上的输出.该线程类如下所示.
/* StreamGobbler.java */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
class StreamGobbler extends Thread
{ …Run Code Online (Sandbox Code Playgroud) 我开始看谷歌的Gson了.输入以下代码错误,因为无法识别最后一行中的Gson.进口是好的,所以我错过了什么?
import com.google.gson.*;
import com.google.gson.stream.*;
public class BuildJsonObject {
Gson myGson = new Gson();
}
Run Code Online (Sandbox Code Playgroud) 我从Andy Tanenbaum的书中得到了这段代码.我正在尝试运行它.它编译并等待连接.但是当我打字时localhost:886,我发现浏览器或终端都没有效果.(它应该根据代码回显一个新的连接字符串).
#define SERVER_PORT 886 /* The port at which the server listens */
#define BUF_SIZE 64032 /* The size of buffer for request and response */
#define QUEUE_SIZE 10 /* Block transfer size */
int main (int argc, char* argv[]) {
int sock = 0, bnd = 0, lst = 0, fd = 0, sa = 0, bytes = 0, on = 1, conn_count = 0;
char buf[BUF_SIZE];
struct sockaddr_in channel; /* IP address holder */
/* …Run Code Online (Sandbox Code Playgroud) 使用int someInts[3]和使用声明一个新的整数数组有什么区别int* someInts = new int[3]?
我无法弄清楚如何使用毫秒来制作HH:MM:SS Countdowntimer.我需要制作一个CountdownTimer,告诉我们到第二天要剩下多少小时,分钟和秒.这是我的代码:
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
long timer = prefs.getLong("TIME", 86400000);
new CountDownTimer(timer, 1000) {
public void onTick(long elapsed) {
time.setText(elapsed/3600000+":"+elapsed/1440000+":"+elapsed/?);
SharedPreferences.Editor editor = prefs.edit();
editor.putLong("TIME",elapsed);
editor.commit();
}
public void onFinish() {
}
}.start();
Run Code Online (Sandbox Code Playgroud)
PS:此外,它必须节省到最后一次检查所剩的时间.我很期待你们的回复.先感谢您!