我想知道在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
答案 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
中