- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
C++ 端看起来像这样:
JNIEXPORT jint JNICALL Java_Myclass_showMessage (JNIEnv* env, jobject obj, jstring title, jstring message, jint type)
{
const char* _title = env->GetStringUTFChars(title, 0);
const char* _message = env->GetStringUTFChars(message, 0);
const int result = MessageBox(NULL, (LPCTSTR) _message, (LPCTSTR) _title, type);
env->ReleaseStringUTFChars(title, _title);
env->ReleaseStringUTFChars(message, _message);
return result;
}
Java 方面:
int result = showMessage("caption", "Hello!", 0);
然而,当我从 java 中调用导出的函数时,我得到的是:
http://i54.tinypic.com/wu5hs0.png
知道是什么原因造成的吗?
câu trả lời hay nhất
使用 MessageBoxA - MessageBox 根据您的项目 Unicode/MBCS 设置自动选择 wide 或 mbcs 版本。
如果您需要转换为 LPCTSTR,则表明出现了问题。
或者,使用 GetStringChars 和 MessageBoxW,在这种情况下,您可能需要根据 jchar 的定义进行转换。
编辑:示例代码
JNIEXPORT jint JNICALL Java_Myclass_showMessage (JNIEnv* env, jobject obj, jstring title, jstring message, jint type)
{
const jchar* _title = env->GetStringChars(title, 0);
const jchar* _message = env->GetStringChars(message, 0);
const int result = MessageBox(NULL, (wchar_t *) _message, (wchar_t *) _title, type);
env->ReleaseStringChars(title, _title);
env->ReleaseStringChars(message, _message);
return result;
}
在这种情况下转换有效,因为 wchar_t 恰好是 16 位宽,与 jchar 相同。
关于java - JNI : can't convert jstring to LPCTSTR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187219/
Tôi đang sử dụng SpringBoot và JPA để gọi db và tôi đã gặp phải ngoại lệ org.springframework.core.convert.ConverterNotFoundException: No conve
Tôi thử triển khai Spring Converter nhưng trong quá trình kiểm tra đơn vị, tôi gặp lỗi: Kotlin: Null không thể là giá trị của loại TodoItem không null Nếu tôi thử
Tôi đang sử dụng Spring Data Redis trong ví dụ Spring Boot 2.0. Trong ví dụ này, tôi đang cố gắng lưu dữ liệu khách hàng + dữ liệu sinh viên cùng nhau. Tôi không chắc lắm về cách mô hình hóa dữ liệu diễn ra ở đây, nhưng giả sử đó là với Mongo
Tôi có đoạn mã sau trong một trong các tệp cấu hình XML của Spring:
Chúng tôi đang cố gắng sử dụng Hibernate Converter để mã hóa/giải mã một số cột dữ liệu được lưu trữ qua hibernate @Convert(attributeName="myattr",converter=Da
Tôi có chức năng này mà tôi phải triển khai: ghi đè được bảo vệ ValidationResult IsValid( Giá trị đối tượng, ValidationContext
Tôi thấy rằng std::convert::Into có bất kỳ triển khai nào của std::convert::From: impl Into cho T trong đó U: From, trong thư viện chuẩn Rust 1.0
Có lợi thế về hiệu suất giữa Convert.ChangeType hay Convert.ToInt32 hay int.Parse Câu trả lời hay nhất Nếu bạn biết mình muốn chuyển đổi một chuỗi thành Int32, hãy sử dụng Convert
Tôi thường xuyên xem lại bài tập về nhà của mình trên lớp. Máy quét của tôi xuất tệp jpg thô sang USB và từ đó tôi có thể sử dụng gimp để chỉnh sửa tệp và lưu dưới dạng pdf. Tôi đã tìm ra một cách để tiết kiệm thời gian là xuất các công việc nhiều trang của mình dưới dạng .mng
Phiên bản Grails: 2.3.8 Tôi đã đăng ký một bộ mã hóa ngày tùy chỉnh trong BootStrap.groovy, nhưng khi tôi sử dụng một Đối tượng được điền ngày tháng dưới dạng Json, nó sẽ đưa ra một ngoại lệ: Thông báo ngoại lệ là C
Tôi thường xuyên xem lại bài tập về nhà của mình trên lớp. Máy quét của tôi xuất tệp jpg thô sang USB và từ đó tôi có thể sử dụng gimp để chỉnh sửa tệp và lưu dưới dạng pdf. Tôi đã tìm ra một cách để tiết kiệm thời gian là xuất các công việc nhiều trang của mình dưới dạng .mng
Tôi đang cố gắng thực hiện SKAction để người chơi của tôi từ từ bị kéo về phía kẻ thù sắp giết anh ta. Trên thực tế, vấn đề là người chơi và kẻ thù ở các nút khác nhau, theo hệ thống phân cấp sau: Scene(SKScene)-PARENT->Player(SKNo
Tôi đã thiết lập trình chuyển đổi tùy chỉnh mongo dữ liệu mùa xuân qua xml như hiển thị bên dưới Trong trình chuyển đổi đọc/ghi tùy chỉnh, tôi muốn
Tôi đang cố gắng sử dụng một loại đá quý có tên Simple Captcha yêu cầu cài đặt ImageMagick trên máy. Tôi đã cài đặt nó và chuyển đổi --version hiển thị Phiên bản này: Imag
Tôi đang cố gắng sử dụng một loại đá quý có tên Simple Captcha yêu cầu cài đặt ImageMagick trên máy. Tôi đã cài đặt nó và chuyển đổi --version hiển thị Phiên bản này: Imag
Tôi đang sử dụng Spring JPA và tôi cần có truy vấn gốc để gọi thủ tục được lưu trữ. Từ kết quả, tôi chỉ cần lấy hai trường, mã và tin nhắn. Tôi đã tạo một lớp có hai trường mã và thông báo. Nó không hoạt động, đây là lỗi tôi nhận được:
Trước tiên, tôi có một tệp nhiều phần và tôi muốn gửi nó đến đường dẫn lạc đà và lưu tệp với tên gốc. Mã của tôi: @Autowired ProductionTemplate nhà sản xuấtTemplate; ...
Dự án maven của tôi sử dụng mùa xuân và ngủ đông. Tôi nhận được "Không có lỗi phương pháp như vậy". Tôi tin rằng điều này là do xung đột phiên bản trong phần phụ thuộc, nhưng không biết là gì. Xây dựng thành công. Nhưng trong "NetBeans: Trong GlassFis
TL;DR: Có bộ chuyển đổi nào trong Vaadin 8 tương tự như Vaadin 7 để cập nhật cách trình bày các trường đầu vào trong giao diện người dùng không? tức là. Xóa tất cả các số không phải số khỏi dữ liệu nhập của người dùng ngay khi trường nhập mất tiêu điểm hoặc chuyển đổi số thập phân thành tiền tệ? Vaadin
Hôm qua tôi đã hỏi một câu hỏi về việc đọc các thuộc tính từ một đối tượng ẩn danh và ghi chúng vào các trường riêng tư của một lớp. Vấn đề đã được giải quyết. Đây là một câu chuyện nhỏ: Tôi có một số dữ liệu ở định dạng json. Tôi giải tuần tự hóa chúng thành ExpandoObject
Tôi là một lập trình viên xuất sắc, rất giỏi!