代码之家  ›  专栏  ›  技术社区  ›  rptony

Windows窗体控件库;托管和未托管

  •  0
  • rptony  · 技术社区  · 16 年前

    Windows窗体控制库项目(C++)i使用非托管DLL编写。非托管dll有一个头文件(Cheshire cat)。我只是把它包含在控制库项目中。并调用非托管dll中的函数(当然是使用正确的封送处理)。这编译并生成。问题是,当我将控件添加到我的脚手架的工具箱时,它是一个托管的C++ WiFrm应用程序,VS2005抱怨它不是.NET模块。

    我见过有人将MFC DLL转换为Windows窗体控件。我做错什么了?.

    1 回复  |  直到 16 年前
        1
  •  1
  •   mmmmmmmm    16 年前

    可能是因为vs2005找不到您的原生.dll。此.dll以“正常”方式搜索本机.dll:

    • 当前目录(我认为主要是vs的启动目录)
    • 应用程序目录(位于%ProgramFiles%\Microsoft Visual Studio…)
    • %PATH %DRs。

    您可以尝试将您的本地dll放在上面提到的目录中的某个位置,并尝试获得更好的结果。

    我绝对建议使您的本机部分是静态的,并静态地将其链接到.NET项目(如果可能的话),因为这样可以避免本机.dll查找问题。(这是我所做的,因为有许多问题。例如,我们有一个转换工具[sdl passolo],它可以处理.NET DLL并将其打包到转换程序包中,包括所有引用的DLL…但仅限于.NET DLL,而不是本机DLL!).

    推荐文章