关于ma调用DLL的问题

各位老师好:

    我现在有一个zzz.ma和对用的zzz.dll,但是我的zzz.dll调用了另外一个动态链接库xxx.dll中的函数(单独编译),所有的编译和链接都通过。但是在MSCE中加载zzz.ma时,出现装载zzz.dll错误:

  操作系统无法加载 E:\MSCE-APP\MisSX\x64\Release\MISSX.dll,错误 126。
  MDL 加载器: 无法加载库(DLL 或 MDL 共享库) MISSX

 这是怎么回事?盼解决,谢谢!

Parents
  • 这是因为找不到依赖库所致,您将您zzz.dll调用的另外一个dll(xxx.dll)放到mstn,目录下:C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation。另外就是同样的道理需要将xxx.dll依赖的动态库都放到MS目录下,并且保证xxx.dll是发布版而不是debug版。

  • 我把这三个文件放在了同一个目录下,但不是C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation目录,这样不可以吗?

    另外:我如果在zzz.dll中利用VC++的loadlibrary函数手工加载xxx.dll到内存,还要求xxx.dll在ma的同一目录下吗?

  • Miscore.rar

    上面是这个dll及对应的lib。我在dll中输出了二个函数:用MISSX.ma调用MISSX.dll,MISSX.dll中调用了MisCore.dll中的任一个函数都出现下列错误:

    操作系统无法加载 E:\MSCE-APP\MisSX\x64\Release\MISSX.dll,错误 126。
    MDL 加载器: 无法加载库(DLL 或 MDL 共享库) MISSX

    当我在MISSX,dll中把这二个函数关掉,一切正常。
    不知什么原因?

    MSCORE_EXPORT void  PrintInfo
    (
    void
    )
    {
        NotificationManager::OutputMessage (NotifyMessageDetails(OutputMessagePriority::Info, L"这是MisCore.dll"));
        return;
    }

    DLLEXPORT BentleyStatus  CreateText
    (
    EditElementHandleR eeh,                          // <= 生成的文本元素
    ElementHandleCP    templateEh,                   // => 样板元素
    WCharCP            textString,                   // => 文本字符串
    DPoint3d           *userOrigin,                  // => 文本原点
    RotMatrix          *rMatrix,                     // => 旋转矩阵
    TextSizeParam      *textSize,                    // => 文本大小参数
    TextParamWide      *textParam,                   // => 文本参数
    TextFieldPtr       textField,                    // => 文本域
    WCharCP            fontName                      // => 文本字体名:L"宋体"
    )

  • 我在我的项目里边调用您这两个函数没有问题,所以方便的话可以将您的TeamViewID及密码发送到我的邮箱,我远程看一下

  • TeamViewID是什么?没用过呀。

    我认为是这样:MS原则上只负责装载ma所对应的dll,至于其他的外部dll,它不负责自动装载,不管该dll在哪个目录下。

                             我把xxx.dll用其他的ma先装载(LOADLIBRARY),然后再装载我的zzz.ma就OK了,也就是说 --- 在ma对应的dll调  用另外一个dll前,必须先将其装载至内存!MSCE真够笨的。

  • TeamViewer微软的一个免费远程软件,请下载一个,将您的ID和Password发给我,我这边不存在您说的现象。所以可能是其他的地方有问题

    Answer Verified By: mz z 

Reply Children
No Data