3

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

Find in files for "sin" in只C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt显示了定义,math.h但仅此而已(除了在EXPORTS某些 def 文件的部分中提及)。

据我所知,sin不是编译器将自身转换为机器代码的关键字。所以必须在某个地方有一个实现,即使该实现归结为一些直接的汇编代码。

我在这里想念什么?哪里有codez?

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

4

2 回答 2

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
    :   :   :
于 2011-10-01T15:33:33.763 回答
1

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

于 2011-10-01T15:23:53.510 回答