Как вызвать методы из AC # DLL в Java? - PullRequest
1 голос
/ 23 ноября 2011

Я создал ac # dll в visual studio 2008

содержимое c # dll приведено ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace hello
{
    public class Class1
    {
        public static double addUp(double number, double Number)
        {
            return number + Number;
        }
        public static double minus(double number, double Number)
        {
            return number - Number;
        }
    }
}

и через Java я загрузил привет.dll с использованием

System.loadLibrary ("привет");

Java-код приведен ниже:

package pkgnew;
import javax.swing.JOptionPane;
public class check 
{

    public static native double addUp(double number,double Number);
    static 
    {
      try
      {
      System.loadLibrary("hello");
      System.out.println("SUCCESS");
      }catch(Exception ex){ JOptionPane.showMessageDialog(null,"Required DLLs Not Found\n"+ex.getCause(),"Error Loading Libraries", JOptionPane.ERROR_MESSAGE);}
    }

    public static void main(String[] args) 
    {
          new check().getval();
    }

    public void getval() {
        try
        {
       double g=this.addUp(52.2, 51.3);
        }catch(Exception y){System.out.println("ERROR IS:"+y);}
    }
}

но проблема в том, что я получаю вывод в виде:

ВЫХОД

SUCCESS
Exception in thread "main" java.lang.UnsatisfiedLinkError: pkgnew.check.addUp(DD)D
    at pkgnew.check.addUp(Native Method)
    at pkgnew.check.getval(check.java:35)
    at pkgnew.check.main(check.java:29)
Java Result: 1

Может кто-нибудь сказать мне, почему я получаю эту ошибку ....и почему я не могу вызвать методы dll

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Я не думаю, что вы можете вызывать собственные расширения в Java без использования оболочек JNI (или, по крайней мере, какой-нибудь библиотеки, которая преобразуется в JNI под капотом). Вы пробовали рамки / предложения, упомянутые в этой теме ?

0 голосов
/ 23 ноября 2011

Вы не можете напрямую вызывать C # dll в Java. Есть обходной путь. Сначала вам нужно написать управляемый класс C ++ для кода C #, затем создать dll из C ++ и использовать его в java.

Эта ссылка может быть полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...