Есть код: Код (Text): --------------- a.cpp ------------------ #include "module.h" #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> #include <fcntl.h> void start_module(){ put_char("starting..."); File *f = new File (JvNewStringUTF ("base")); System::out->println(f->length()); } Код (Text): ----------- module.h ------------ #include <java/lang/String.h> #include <java/lang/System.h> #include <java/io/PrintStream.h> #include <fstream> #include <cassert> #include <map> #include <stdio.h> #include <stdlib.h> #include <gcj/cni.h> #include <java/io/File.h> #include <java/io/FileInputStream.h> #include <java/io/InputStreamReader.h> #include <java/io/BufferedReader.h> #include <java/io/PrintWriter.h> #include <java/io/OutputStreamWriter.h> #include <java/io/FileOutputStream.h> #define nstring JvNewStringUTF void start_module(); using namespace java::lang; using namespace java::io; using namespace java::net; void init(){ JvCreateJavaVM(NULL); #define MODULE_STARTED start_module(); } void put_char(char *c){ #ifdef MODULE_STARTED String *message = nstring(c); System::out->println(message); #endif } void file_create_new(char *filename){ File *f; f=new File(nstring(filename)); f->createNewFile(); } int main(){ init(); return 0; } Прога выводит длину файла, закрывается и затирает за собой файл, длину которого узнавала Почему?
Я, правда тонкостей не знаю, но может стоит f закрывать?! Вот более понятный мне вид того, что написанно Код (Text): int main(){ JvCreateJavaVM(NULL); #define MODULE_STARTED #ifdef MODULE_STARTED String *message = JvNewStringUTF("starting..."); System::out->println(message); #endif File *f = new File (JvNewStringUTF ("base")); System::out->println(f->length()) return 0; }
Дык нет у struct File методов типа close(); Файл затирается после любой операции (чтение, вычисление длины, запись). Я сделал так: переопределил struct File в заголовочном файле. Это на производительность влияет, но зато надежно. Просто в Инете нет почти примеров, когда к С++ подключают заголовочные файлы Java. Все приходится копать вручную.
У меня вопрос ко всем: А будет ли вообще по-дзенски копать в сторону подключеня заголовочных файлов Java к C++ проектам? Ведь по сути мы получаем мощную платформу для разработки.