我正在使用Visual Studio 2008 Express Edition创建一个简单的C ++ DLL项目。
我在命名空间中有几个类,其中的一些非静态函数和构造函数用__declspec(dllexport)
声明。
所有这些功能都已实施。
我还有一个extern "C" BOOL APIENTRY DllMain
函数,只返回TRUE
。
当我点击Debug(或Release)时,它成功构建,没有错误或警告。 输出文件夹(“Debug /”或“Release /”)获取文件,如“BuildLog.htm”,每个源文件一个“.obj”文件,“vc90.pdb”,“vc90.idb”,“[DLLNAME] ] .dll.embed.manifest“,”[DLLNAME] .dll.embed.manifest.res“,”[DLLNAME] .dll.intermediate.manifest“但......不是DLL本身。
这是我第一次尝试编译这个项目(所以我以前从未成功编译过),而且我对C ++ / DLL没什么经验,尽管我之前知道独立的C ++并且创建了Linux C共享对象。
我做错了什么?是否有任何我需要的特定文件?
答案 0 :(得分:8)
我在目录结构(解决方案所在的目录结构)中查找更高一点,看看你的Debug / Release文件夹(带有DLL)是否存在。
我认为默认是将实际的DLL放在解决方案目录中的文件夹中,而不是项目目录中(我认为您希望为解决方案构建的所有DLL都转到同一位置)< / p>
答案 1 :(得分:1)
右键点击<ProjectsName>
中的Solution Explorer View
,选择Properties
,转到Configuration Properties > General
标签,然后查看Output Directory
字段。该路径可能包含一些宏,例如$(SolutionDir)$(ConfigurationName)
等。点击它,选择Edit
然后当弹出一个窗口时,选择Macros
以查看它们实际意味着什么,例如哪个目录SolutionDir
映射到。您可以从那里推断出输出dll的路径。