MSVCRT:sin,cos等人的工具(源代码)在哪里?

时间:2011-10-01 15:20:56

标签: c visual-studio visual-c++ msvcrt

我想知道在Visual C ++ CRT中可以找到基本三角函数的实现。

查找文件 “sin” C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt中显示了math.h中的定义,但仅此而已(EXPORTS中的提及除外sin 1}}部分def文件)。

据我所知,{{1}}不是编译器将自身转换为机器代码的关键字。因此必须在某处实现,即使该实现归结为一些直接的汇编代码。

我在这里缺少什么? Where'z teh codez?

编辑:显然,我不够清楚:我正在寻找源代码,而不是编译lib或dll

2 个答案:

答案 0 :(得分:5)

它在MSVCR90.DLL中:

C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_...>dumpbin /exports msvcr90.dll | findstr sin
         74   48 0007ABA0 _CIasin = __CIasin
         84   52 0007B5C0 _CIsin = __CIsin
         85   53 0007AF38 _CIsinh = __CIsinh
        159   9D 000236AB __get_flsindex = ___get_flsindex
        160   9E 000236AB __get_tlsindex = ___get_flsindex
        177   AF 0007CE73 __libm_sse2_asin = ___libm_sse2_asin
        178   B0 0007D2C1 __libm_sse2_asinf = ___libm_sse2_asinf
        192   BE 0007FE7C __libm_sse2_sin = ___libm_sse2_sin
        193   BF 00080039 __libm_sse2_sinf = ___libm_sse2_sinf
        696  2B7 0002E27A _mbsinc = __mbsinc
        697  2B8 0002E24E _mbsinc_l = __mbsinc_l
       1211  4BA 0007AB60 asin = _asin
       1349  544 0007B580 sin = _sin
       1350  545 0007AF20 sinh = _sinh

更新

未提供来源。提供CRT源中的功能的库似乎在crt\src\intel\mt_lib\tran.lib

C:\...\crt\src\intel\mt_lib> lib /list tran.lib
    :   :   :
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sincosf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sincos_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sinf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sin_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_tanf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_tan_sse2_.obj
    :   :   :

答案 1 :(得分:1)

它在libc中。如果要静态构建,则在libc.lib中构建。如果您正在动态构建,那么它在msvcrt.dll