我有很多这样的方法:
int add5(int val)
{
return add5Wrap(val);
}
int instanceMethod(void)
{
return instanceMethodWrap();
}
int classMethod(void)
{
return classMethodWrap();
}
void getPropertyString(char * outStr)
{
outStr = getProperty();
}
void setPropertyString(char * string)
{
setProperty(string);
}
int start(void)
{
initialise();
return 0;
}
它们在这样的标头中声明:
int add5(int val);
int instanceMethod(void);
int classMethod(void);
void getPropertyString(char * string);
void setPropertyString(char * string);
int start(void);
然后将它们与一些目标C一起编译,并与它们进行交互以生成dylib。
dylib加载。据我所知,除一种方法外,所有方法都无需抱怨*。
start()无法运行。它给出一个EntryPointNotFoundException。
是什么原因造成的,我该如何解决?
*它们仍然给出错误的值,因为尽管没有初始化。
C#端:
[DllImport("mydll.dylib")]
public static extern int start ();
[DllImport("mydll.dylib")]
public static extern int add5 (int val);
[DllImport("mydll.dylib")]
public static extern int instanceMethod();
[DllImport("mydll.dylib")]
public static extern int classMethod();
start();
add5(5);
等等
最佳答案
我找到了答案。我以为MonoMac正在寻找dylib的文件夹是/ Library / Frameworks。实际上,它在/ usr / lib中查找。 / usr / lib中的库版本比/ Library / Frameworks中的库版本旧得多。