大家好我写了一个dll,要发布,用dependency 看了一下,这个dll用到了mscvp71.dll msvcr71.dll mfc71.dll。
但实际上,我根本找不到用这几个库的地方,或者头文件。我想问一下,有没有什么方法,将mfc的头文件和库的对应关系找出来?
比如 调用msvcp71.dll的mfc头文件有a.h、b.h或者 cc.h调用了 xx.dll xxx.dll
但实际上,我根本找不到用这几个库的地方,或者头文件。我想问一下,有没有什么方法,将mfc的头文件和库的对应关系找出来?
比如 调用msvcp71.dll的mfc头文件有a.h、b.h或者 cc.h调用了 xx.dll xxx.dll
解决方案 »
- vector error C2143: syntax error : missing ';' before '<' 為什麼這樣?
- 下面这段代码,我想不显示GUI界面,该在哪里改动呢?求求帮我
- 请问怎么把程序上面哪把小叉变灰啊.谢谢了
- 请教:如何在VC++中连接SQL Server2000数据库?!谢谢,急急急急!
- server pack怎么装?
- 怎么把一BMP文件显示出来,谢谢!
- 请教大虾:在使用CTreeCtrl时能不能让每一个节点(Item)包含一个自定义的附属信息,比如对象指针或字符串,然后在获得用户点击的节点时,
- 如何在SDI中添加多个视图
- 关于列表视图的问题。
- 喜欢socket的都来啊,这里有好东东!
- 关于读取INI问题
- getBoundingClientRect 取坐标问题
指定 MFC 项目是否将静态或动态链接到 MFC DLL。非 MFC 项目可以选择“使用标准 Windows 库”链接到使用 MFC 时包括的各种 Win32 库。
/MD、/ML、/MT、/LD(使用运行时库)这些选项选择单线程或多线程运行时例程,指示多线程模块是否为 DLL,并选择运行时库的发布版本或调试版本。选项 说明
/MD 定义 _MT 和 _DLL 以便同时从标准 .h 文件中选择运行时例程的多线程特定版本和 DLL 特定版本。此选项还使编译器将库名 MSVCRT.lib 放入 .obj 文件中。
用此选项编译的应用程序静态链接到 MSVCRT.lib。该库提供允许链接器解析外部引用的代码层。实际工作代码包含在 MSVCR71.DLL 中,该库必须在运行时对于与 MSVCRT.lib 链接的应用程序可用。当在定义了 _STATIC_CPPLIB (/D_STATIC_CPPLIB) 的情况下使用 /MD 时,它将导致应用程序通过静态多线程标准 C++ 库 (libcpmt.lib) 而非动态版本 (msvcprt.lib) 进行链接,同时仍通过 msvcrt.lib 动态链接到主 CRT。
/MDd 定义 _DEBUG、_MT 和 _DLL,以便从标准 .h 文件中选择运行时例程的调试多线程特定版本和 DLL 特定版本。它还使编译器将库名 MSVCRTD.lib 放入 .obj 文件中。
/ML 使编译器将库名 LIBC.lib 放入 .obj 文件中,以便链接器使用 LIBC.lib 解析外部符号。这是编译器的默认操作。LIBC.lib 不提供多线程支持。
/MLd 定义 _DEBUG 并使编译器将库名 LIBCD.lib 放入 .obj 文件中,以便链接器使用 LIBCD.lib 解析外部符号。LIBCD.lib 不提供多线程支持。
/MT 定义 _MT,以便从标准头 (.h) 文件中选择运行时例程的多线程特定版本。此选项还使编译器将库名 LIBCMT.lib 放入 .obj 文件中,以便链接器使用 LIBCMT.lib 解析外部符号。创建多线程程序需要 /MT 或 /MD(或它们的调试等效选项 /MTd 或 /MDd)。
/MTd 定义 _DEBUG 和 _MT。定义 _MT 会导致从标准 .h 文件中选择运行时例程的多线程特定版本。此选项还使编译器将库名 LIBCMTD.lib 放入 .obj 文件中,以便链接器使用 LIBCMTD.lib 解析外部符号。创建多线程程序需要 /MTd 或 /MDd(或它们的非调试等效选项 /MT 或 MD)。
也感谢上边两位的支持。我找到一篇对c 和 c++ 运行库和连接的说明,感觉很不错,给大家以共享。
http://blog.csdn.net/ATField/archive/2007/03/11/1526253.aspx