编译多线程应用程序的第一步是要确保编译器使用了正确的运行时库:MS为C运行时库提供了几个不同的实现。这些版本在以下3个标准上有所不同:链接方式(静态or动态)、是否可再入(有一个库是为单线程应用程序设计的,是不可再入的;另一个库是为多线程设计的,是可再入的)、以及是否包含调试符号。 <table cellpadding="0" border="1" cellspacing="0" ><tbody > <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> </tbody></table>
支持C程序的微软多线程库: <table cellpadding="0" border="1" cellspacing="0" ><tbody > <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> </tbody></table>
支持C++程序的微软多线程库: <table cellpadding="0" border="1" cellspacing="0" ><tbody > <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> <tr >
</tr> </tbody></table>
开发人员不能在单个进程空间中混合使用静态和动态库。当一个exe文件用到一个dll时,需要有开发人员保证使用相同版本的C运行时库来正确的构建exe和dll。