C Pointers - Invalid Conversion from Char to Char*
我目前正在编码Java应用程序,该应用程序加载用C编码的本机库。
从Java调用的C函数传递给jchar。
在该C函数中,另一个库加载了一个新函数,该函数需要将jchar转换为char *指针。
我对该新功能的全部了解是,它将一个指向char值的指针作为参数(char *奇偶校验)。
这是我当前的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | JNIEXPORT jint JNICALL Java_analyzer_DeclareNative_init (JNIEnv *env, jobject obj, ... , jchar parity, ...) { typedef int (__stdcall *Init) (..., char* parity, ...); HINSTANCE hinstLib = LoadLibrary("rs232"); Init initcon = (Init) GetProcAdress(hinstLib,"functionname"); char p = (char) parity; //(Typecasting jchar to char) char *pchar = &p; //(Creating a pointer to p) initcon(..., *pchar, ...); } |
当我尝试编译此代码时,它引发以下错误:
"从char到char *的转换无效"
正如@bmargulies已经指出的那样,这里的问题是您没有传递
如果查看函数参数,您会看到
1 | char p = (char) parity; |
您正在将char指针转换为char。 您无需根据下一行显示的内容执行此操作:
1 | char *pchar = &p; |
由于传入了参数,您已经具有作为