Код C# в код JAVA
Я приложил много усилий, погуглил и перепробовал все возможные способы. Но я не получил удовлетворения, поэтому в конце концов пришел сюда.
Я хочу преобразовать нижеприведенную строку кода [C#] в java.
1] метод, используемый для преобразования IP в uint
private uint GetIP(string strIp) { System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse(strIp); uint lIp = (uint)ipaddress.Address; lIp = ((lIp & 0xFF000000) >> 24) + ((lIp & 0x00FF0000) >> 8) + ((lIp & 0x0000FF00) << 8) + ((lIp & 0x000000FF) << 24); MessageBox.Show(strIp + " = " + lIp); return (lIp); }
2] метод, используемый для преобразования строки в IntPtr
IntPtr iPtr = Marshal.StringToHGlobalAnsi("Hello");
Пожалуйста, помогите мне как можно скорее. Заранее спасибо.
Я очень ценю помощь.
Что я уже пробовал:
Я попробовал следующий код для преобразования IP в Long, не уверен, правильно это или неправильно .
публичный статический долго ipToLong(строку IP-адрес) {
String[] ipAddressInArray = ipAddress. split("\\.");
длительный результат = 0;
for (int i = 0; i < ipAddressInArray. length; i++) {
int power = 3-i;
int ip = Integer. parseInt(ipAddressInArray[i]);
результат += ip * Math. pow(256, мощность);
}
возвращаемый результат;
}
Для строки указателя IntPtr, пытался преобразовать строку в ASCII, а затем попытался использовать целочисленная по ссылке.
[no name]
Если вы не уверены, правильно это или нет, почему бы вам не пойти и не попробовать сначала.
Tejas Sawant 13
Мне нужны предложения и мнения, поэтому я пишу здесь.
Richard MacCutchan
Вчера я сделал тебе предложение; иди и попробуй.
Tejas Sawant 13
Спасибо за отличное предложение. Код работает нормально, я спрашивал, правильный ли это подход или что-то еще нужно сделать.
Пожалуйста, предложите какой-нибудь java-код для приведенной ниже строки кода C#
IntPtr iPtr = Маршал.StringToHGlobalAnsi ("Привет");
Richard MacCutchan
В Java нет эквивалента. Я предлагаю вам прочитать разделы об обработке интернет-сообщений в документации Java.
Tejas Sawant 13
int SendText(int rowNo, const char *pText);
Я импортировал одну dll-библиотеку в java-проект. Мне нужно вызвать вышеприведенный метод, как я могу вызвать этот метод.
В C# мы можем вызвать вышеуказанный метод, как показано ниже
SendText(1, Маршал.StringToHGlobalAnsi ("Привет"));
Как я могу сделать то же самое на java ?
Richard MacCutchan
Вам нужно использовать собственный интерфейс Java, см. Java SE 7 Java Native Interface-связанные API и руководства для разработчиков[^].
Tejas Sawant 13
Да, я использовал JNI, я успешно импортировал dll. Но я не могу вызвать только этот метод.
Richard MacCutchan
Извините, но я понятия не имею, какую библиотеку DLL вы пытаетесь использовать или почему вы не можете вызвать какой-то код. Как я уже сказал выше, нет простого эквивалента Java для кода C#, который вы показали. Вам нужно изучить библиотеку DLL и ее документацию и написать необходимый код JNI, чтобы получить доступ к ней из Java.
Tejas Sawant 13
Эй, Ричард, Спасибо за комментарии.Я ценю ваши усилия.
DLL разработана на языке Си . Я использую эту библиотеку dll для связи с оборудованием. Поэтому мне тоже нужно вызвать этот метод.