我正在尝试导入如下文件:
#import "francais.dll"
它告诉我它无法打开源文件“C:/xxxx/Proj/Release/francais.tlh”
库文件存在于 Proj 中。
如何解决?
最佳答案
它不是一个“库文件”,它是一个COM服务器。 #import 指令从嵌入在 francais.dll 中的类型库自动生成 .tli 和 .tlh 文件。它无法加载该 .tlh 文件没有明显的原因,该 DLL 可能有问题。从这里很难看到。请确保您没有忽略之前的错误,从“错误列表”窗口的顶部开始。
作为基本检查,您可以自己查看该类型库。从 Visual Studio 命令提示符运行 OleView.exe 并使用 File + View Typelib,选择该 DLL。您需要查看类型库的内容,反编译为 IDL。
您也可以在 VS 本身中看到它,使用"file"+“打开”+"file"并选择 DLL。您将看到嵌入在 DLL 中的资源,需要有一个标记为“TYPELIB”的节点,其中一个资源 ID 为 1,即实际类型库。如果这两个验证出现任何问题,那么 #import 指令也不太可能起作用。
请注意,它试图在 Release 目录中查找文件很奇怪。您通常总是从调试配置开始。
关于c++ - 使用 visual studio 导入 lib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384157/