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

时间:2009-04-23 20:15:59

标签: .net c++ unmanaged managed-c++

我编写的windows窗体控件库项目(C ++)使用非托管dll。非托管dll有一个头文件(柴郡猫)。我只是将它包含在控件库项目中。并调用非托管DLL中的函数(当然正确编组)。这编译和构建。问题是当我继续将控件添加到我的脚手架的工具箱时,这是一个托管C ++ winform应用程序,VS2005抱怨它不是.Net模块。

我见过人们使用MFC dll转换为windows窗体控件。我究竟做错了什么?。

1 个答案:

答案 0 :(得分:1)

也许是因为VS2005找不到你原生的.DLL。对于本机.DLL,以“正常”方式搜索此.DLL:

  • 当前目录(我认为它主要是VS的启动目录)
  • App direcotry(在%ProgramFiles%\ Microsoft Visual Studio ......中的某处)
  • %PATH%dirs。

您可以尝试将您的原生DLL放在上面提到的dirs中,并尝试获得更好的结果。

我绝对建议将您的原生部分静态并静态地链接到您的.NET项目(如果可能的话),因为它可以避免本机.DLL查找问题。 (这就是我所做的,因为有很多问题。比如我们有一个翻译工具[SDL Passolo]可以处理.NET DLL并将它们打包成翻译包,包括所有引用的DLL ......但只有.NET DLL但不是本机的的DLL!)。