Вы можете указать расположение соответствующей DLL. Я работаю над проектом, который требует аналогичных функций. См. Код ниже. После того как вы поделились местоположением DLL на целевой машине с вашим клиентом, вы можете получить доступ к dll, указав путь, как показано ниже.
public class TestRemoteDll{
public native String readFile();
public static void main(String args[]){
System.load("\\\\{Device's Name}\\Users\\Milan.AF\\Desktop\\RemoteDir\\Remotedll.dll");
TestRemoteDll test = new TestRemoteDll();
System.out.println("Calling native method!");
String sum = test.readFile();
System.out.println("Returned from Native Method");
System.out.println(sum);
}
}
И убедитесь, что вы создаете DLL соответственно, а также (использование DLL файлы должны быть совместно с клиентом, а) .Вы должны указать расположение файлов подобным образом, когда вы создаете dll, как показано ниже.
#include "stdafx.h"
#include "iostream"
#include<string>
#include <fstream>
#include "Remotedll.h"
using namespace std;
string RemoteDll::readFile() {
int sum=0,x;
ifstream inFile;
inFile.open("\\\\{Device's Name}\\temp\\intSum.txt");
if (!inFile) {
return "Failed to open file!";
}
while (inFile >> x) {
sum = sum + x;
}
inFile.close();
string str = to_string(sum);
return "File operation successful! Sum =" + str ;
}
Я надеюсь, что это помогает.
Для приема соединений необходим сервер на удаленном компьютере. – SLaks
@SLaks Можете ли вы предоставить более подробную информацию о том, какой сервер? – bram
Вам не нужен * сервер на удаленном компьютере, но это, вероятно, лучшая архитектура. Приложения, которые полагаются на общие диски для данных, достаточно хрупкие, но приложения, которые полагаются на общие диски для кода, просто требуют неприятностей. – EJP