小编pmg*_*pmg的帖子

JNI:NoSuchFieldError

输出:javap -s SomeClass

public org.someapp.SomeClass$_data data;
  Signature: Lorg/someapp/SomeClass$_data;
Run Code Online (Sandbox Code Playgroud)

Java中SomeClass的定义:

class SomeClass
{
    private class _data {
        byte[] something = new byte[1234];
    }

    public _data data;
}
Run Code Online (Sandbox Code Playgroud)

Java中本机函数的定义:

public static native int NativeFunction(SomeClass something);
Run Code Online (Sandbox Code Playgroud)

Java实现:

SomeClass x = new SomeClass();
NativeInterface.NativeFunction(x);
Run Code Online (Sandbox Code Playgroud)

但是,执行以下代码时:

JNIEXPORT jint JNICALL Java_org_someapp_NativeInterface_NativeFunction(JNIEnv* env, jobject obj, jobject someobject) {
    jclass some_class = (*env)->GetObjectClass(env, someobject);
    jfieldID data = (*env)->GetFieldID(env, some_class, "data", "Lorg/someapp/SomeClass$_data"); 
}
Run Code Online (Sandbox Code Playgroud)

Java在GetFieldID调用上抛出"NoSuchFieldError;:data"异常.我不明白..签名很好(直接从javap复制).

请注意,获取更简单变量的字段ID(如无符号短(带有签名"S"))可以正常工作.

java java-native-interface android

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

C*运算符在数组赋值中的含义

这条线是什么意思?几年后我没有做过C.它是否在parens中执行操作然后使int结果成为指针?

b[0] = *(start + pos++);
Run Code Online (Sandbox Code Playgroud)

c arrays pointers variable-assignment

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

构建抛出错误"命令... llvm-gcc-4.2失败,退出代码为1"

这是构建的日志.这是Xcode 4中的一个全新项目,因此其中唯一的非常规项目如下:

  1. 一个.c文件
  2. 一个.a库
  3. 一堆头文件

我一直在玩构建设置并在几个小时内搜索答案,看它是否会消失,但事实并非如此.任何帮助你将不胜感激.

输出(点击查看大图):

c compiler-errors llvm-gcc xcode4

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

如何正确比较两个未签名的字符?

期待比较两个

BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
Run Code Online (Sandbox Code Playgroud)

来自IP_ADAPTER_ADDRESSES结构

其中byte在windows中定义为 typedef unsigned char BYTE;

我需要比较记忆吗?

谢谢!

c c++ windows networking char

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

重载operator << for std :: stack

代码优先:

//.cpp文件

template <typename T>
ostream &operator<<(ostream &os, stack<T> &st)
{
    while(! st.empty()) {
        os << st.top() << " ";
        st.pop();
    }
    return os;
}

template <typename T>
void stack_sorter(stack<T> &st)
{
    cout << st << endl;  //no output, st is empty?
    //...
}

int main()
{
    stack<int> s;
    s.push(4);
    s.push(3);
    s.push(5);
    cout << s << endl;  //ok
    stack_sorter(s);
}
Run Code Online (Sandbox Code Playgroud)

输出:

5 3 4  //this was the output in main, not in stack_sorter
       //empty line, but s is not empty, …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

错误C2664:'sprintf':无法将参数1从'std :: string'转换为'char*'

下面是VC++中的插入函数.当我将char更改为字符串数据类型以读取以下代码中的amount变量值时,我收到此错误.

static void Insert(t_analysis* analysis)    
{    
 _bstr_t strunitId;    
 _bstr_t strGdt=time(0);    
_bstr_t strvalue;   
    std::string str;
std::string commandStr = "insert into table1(unitid,g_time_dte_1,h_1,n_1,ch_1,co_1,im_1,ve_1,er_1) Values(123,'" + strGdt +"',";
    char tempBuf[50];
for (int j = 0; j < analysis->ubPeaksIntTab;j++ )
{   
    sprintf(tempBuf, "%d", (analysis->peak + j)->amount);//here it takes the adrress of amount but not the value of amount variable.
    str += commandStr + tempBuf;
    if(j!=analysis->ubPeaksIntTab-1)
       commandStr += ",";
}

commandStr += ")";
_ConnectionPtr pConn = NULL;

try
{       
    HRESULT hr = S_OK;
    CoInitialize(NULL);
    hr = …
Run Code Online (Sandbox Code Playgroud)

visual-c++

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

在C中写入/读取数值

我一定是疯了.这非常简单,所以我显然忽略了一些东西:

这是我的代码:


int salesarray[20];    
scanf("%d",&sales_input);    
printf("sales_input is %d",sales_input);    
salesarray[i] = sales_input;    
printf("salesValue is %d",i,salesarray[i]);
Run Code Online (Sandbox Code Playgroud)

以下是我将要看到的内容:

sales_input是2salesValue是1

任何人都可以解释为什么我的阵列没有正确更新?salesValue应该更改为值2.或者我在这里读错了...

c arrays printf

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

如何在DOS提示符下运行C程序

我想在DOS提示符下运行一个C程序.可能吗?

c executable dos

0
推荐指数
2
解决办法
5万
查看次数

STL使用抽象类排序

我在使用STL排序函数对派生类进行排序时遇到问题.

示例 -

标题:

vector<AbstractBaseClass *> *myVector;  
Run Code Online (Sandbox Code Playgroud)

在ImpL中:

sort(myVector->begin(), myVector->end(), compareBy);
Run Code Online (Sandbox Code Playgroud)

比较器:

bool MyClass::compareBy(AbstractBaseClass& a, AbstractBaseClass& b) {
    return (a->someMethod() < b->someMethod());
}
Run Code Online (Sandbox Code Playgroud)

编辑:这个问题适用于使用STL排序抽象类的一般用法(我没有发布跟踪转储).如果它已经不明显了,我会说它没有办法可以编译为打印.相反,我问(给定数据结构)人们通常会如何对这个玩具抽象类进行排序.

感谢您的快速解答,我相信你们已经钉了它们!

得到了StackOverFlow!

c++ stl

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

为什么RAND_MAX是C++中的一个宏?

为什么不是const?我认为这不是一个明确的C++方式.也许有更多的C++方法来生成随机数,是吗?

c++ random

0
推荐指数
2
解决办法
567
查看次数