首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图导入获取System.DLLNotFoundException的库(System.DLLNotFoundException)

试图导入获取System.DLLNotFoundException的库(System.DLLNotFoundException)
EN

Stack Overflow用户
提问于 2011-07-24 12:53:50
回答 1查看 1.9K关注 0票数 3

我在xcode中创建了一个静态cocos项目,整个项目由一个名为File.c的.c文件和这个函数组成:

代码语言:javascript
复制
   int Get10()
   {
       return 10;
   }

我为它创建了一个名为“数字”的目标,并创建了一个名为libNumbers.a的项目。我将libNumbers.a移到我的MonoTouch项目根目录中,并在附加的mtouch参数区域中添加了以下内容:

-gcc_flags "-L${ProjectDir} -lNumbers -force_load ${ProjectDir}/libNumbers.a“

代码编译得很好。

因此,在我的C#项目中的一个MonoTouch文件中,我添加了以下内容:

代码语言:javascript
复制
    [DllImport ("libNumbers.a")]
    private static extern int Get10 ();

(我也试过做DllImport (“Numbers.a”)

然后,在异常期间,一个名为Get10()的函数。这会引发以下异常:

/Users/ahmedhakeem/Documents/Projects/goodjabberengine/MyCode/Engine/BaseGame.cs:103中的

System.DllNotFoundException: libNumbers.a at (包装托管到本地) Jabber.BaseGame:Get10 () at Jabber.BaseGame.Draw (Microsoft.Xna.Framework.GameTime dt) 0x00043

据我所见,它似乎无法找到有问题的dll。

一个可能的原因是,我将函数Get10 (并将其导入)调用到单独库项目中的源文件中(即不是我添加了额外的mtouch参数的项目)。没有办法以单调的方式将mtouch参数添加到库项目中,因此我不认为这是一种选择。

有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-24 13:09:22

如果当符号变为内部(在主应用程序内)时,库将与应用程序链接。在这种情况下,正确的声明是:

代码语言:javascript
复制
[DllImport ("__Internal")]
extern static void YourLinkedNativeCode ();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6806906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档