I dumpbin opus library, then I tried to export the function names via dumpbin , I got the following incomprehensible thing for me:
Microsoft (R) COFF/PE Dumper Version 14.15.26726.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file opus.dll File Type: DLL Section contains the following exports for opus.dll 00000000 characteristics FFFFFFFF time date stamp 0.00 version 1 ordinal base 67 number of functions 67 number of names ordinal hint RVA name 1 0 00001980 opus_decode = @ILT+2416(_opus_decode) 2 1 00002320 opus_decode_float = @ILT+4880(_opus_decode_float) 3 2 00001FC0 opus_decoder_create = @ILT+4016(_opus_decoder_create) 4 3 00001560 opus_decoder_ctl = @ILT+1360(_opus_decoder_ctl) 5 4 00002630 opus_decoder_destroy = @ILT+5664(_opus_decoder_destroy) 6 5 000025B0 opus_decoder_get_nb_samples = @ILT+5536(_opus_decoder_get_nb_samples) 7 6 00002270 opus_decoder_get_size = @ILT+4704(_opus_decoder_get_size) 8 7 00002550 opus_decoder_init = @ILT+5440(_opus_decoder_init) 9 8 000016D0 opus_encode = @ILT+1728(_opus_encode) 10 9 00001910 opus_encode_float = @ILT+2304(_opus_encode_float) 11 A 00002100 opus_encoder_create = @ILT+4336(_opus_encoder_create) 12 B 00001790 opus_encoder_ctl = @ILT+1920(_opus_encoder_ctl) 13 C 00002530 opus_encoder_destroy = @ILT+5408(_opus_encoder_destroy) 14 D 000019B0 opus_encoder_get_size = @ILT+2464(_opus_encoder_get_size) 15 E 00002260 opus_encoder_init = @ILT+4688(_opus_encoder_init) 16 F 00001060 opus_get_version_string = @ILT+80(_opus_get_version_string) 17 10 00001F00 opus_multistream_decode = @ILT+3824(_opus_multistream_decode) 18 11 00002930 opus_multistream_decode_float = @ILT+6432(_opus_multistream_decode_float) 19 12 000017C0 opus_multistream_decoder_create = @ILT+1968(_opus_multistream_decoder_create) 20 13 00001B20 opus_multistream_decoder_ctl = @ILT+2832(_opus_multistream_decoder_ctl) 21 14 00001A50 opus_multistream_decoder_destroy = @ILT+2624(_opus_multistream_decoder_destroy) 22 15 00001EC0 opus_multistream_decoder_get_size = @ILT+3760(_opus_multistream_decoder_get_size) 23 16 000017A0 opus_multistream_decoder_init = @ILT+1936(_opus_multistream_decoder_init) 24 17 00002040 opus_multistream_encode = @ILT+4144(_opus_multistream_encode) 25 18 00001DD0 opus_multistream_encode_float = @ILT+3520(_opus_multistream_encode_float) 26 19 00001C00 opus_multistream_encoder_create = @ILT+3056(_opus_multistream_encoder_create) 27 1A 000015E0 opus_multistream_encoder_ctl = @ILT+1488(_opus_multistream_encoder_ctl) 28 1B 00001050 opus_multistream_encoder_destroy = @ILT+64(_opus_multistream_encoder_destroy) 29 1C 00001590 opus_multistream_encoder_get_size = @ILT+1408(_opus_multistream_encoder_get_size) 30 1D 000019E0 opus_multistream_encoder_init = @ILT+2512(_opus_multistream_encoder_init) 31 1E 00001F30 opus_multistream_packet_pad = @ILT+3872(_opus_multistream_packet_pad) 32 1F 00001F40 opus_multistream_packet_unpad = @ILT+3888(_opus_multistream_packet_unpad) 33 20 000021F0 opus_multistream_surround_encoder_create = @ILT+4576(_opus_multistream_surround_encoder_create) 34 21 00001360 opus_multistream_surround_encoder_get_size = @ILT+848(_opus_multistream_surround_encoder_get_size) 35 22 00001970 opus_multistream_surround_encoder_init = @ILT+2400(_opus_multistream_surround_encoder_init) 36 23 000027B0 opus_packet_get_bandwidth = @ILT+6048(_opus_packet_get_bandwidth) 37 24 00001AF0 opus_packet_get_nb_channels = @ILT+2784(_opus_packet_get_nb_channels) 38 25 000011F0 opus_packet_get_nb_frames = @ILT+480(_opus_packet_get_nb_frames) 39 26 000016E0 opus_packet_get_nb_samples = @ILT+1744(_opus_packet_get_nb_samples) 40 27 00001660 opus_packet_get_samples_per_frame = @ILT+1616(_opus_packet_get_samples_per_frame) 41 28 00001DB0 opus_packet_pad = @ILT+3488(_opus_packet_pad) 42 29 00001E30 opus_packet_parse = @ILT+3616(_opus_packet_parse) 43 2A 00001C20 opus_packet_unpad = @ILT+3088(_opus_packet_unpad) 44 2B 000010D0 opus_pcm_soft_clip = @ILT+192(_opus_pcm_soft_clip) 45 2C 00001570 opus_projection_ambisonics_encoder_create = @ILT+1376(_opus_projection_ambisonics_encoder_create) 46 2D 00001350 opus_projection_ambisonics_encoder_get_size = @ILT+832(_opus_projection_ambisonics_encoder_get_size) 47 2E 000017B0 opus_projection_ambisonics_encoder_init = @ILT+1952(_opus_projection_ambisonics_encoder_init) 48 2F 00001990 opus_projection_decode = @ILT+2432(_opus_projection_decode) 49 30 000016A0 opus_projection_decode_float = @ILT+1680(_opus_projection_decode_float) 50 31 00001440 opus_projection_decoder_create = @ILT+1072(_opus_projection_decoder_create) 51 32 00002720 opus_projection_decoder_ctl = @ILT+5904(_opus_projection_decoder_ctl) 52 33 00001C90 opus_projection_decoder_destroy = @ILT+3200(_opus_projection_decoder_destroy) 53 34 000012B0 opus_projection_decoder_get_size = @ILT+672(_opus_projection_decoder_get_size) 54 35 00002580 opus_projection_decoder_init = @ILT+5488(_opus_projection_decoder_init) 55 36 000020B0 opus_projection_encode = @ILT+4256(_opus_projection_encode) 56 37 00001400 opus_projection_encode_float = @ILT+1008(_opus_projection_encode_float) 57 38 00001710 opus_projection_encoder_ctl = @ILT+1792(_opus_projection_encoder_ctl) 58 39 00001010 opus_projection_encoder_destroy = @ILT+0(_opus_projection_encoder_destroy) 59 3A 00001860 opus_repacketizer_cat = @ILT+2128(_opus_repacketizer_cat) 60 3B 00001110 opus_repacketizer_create = @ILT+256(_opus_repacketizer_create) 61 3C 00001D50 opus_repacketizer_destroy = @ILT+3392(_opus_repacketizer_destroy) 62 3D 00002820 opus_repacketizer_get_nb_frames = @ILT+6160(_opus_repacketizer_get_nb_frames) 63 3E 000020C0 opus_repacketizer_get_size = @ILT+4272(_opus_repacketizer_get_size) 64 3F 000029C0 opus_repacketizer_init = @ILT+6576(_opus_repacketizer_init) 65 40 000012F0 opus_repacketizer_out = @ILT+736(_opus_repacketizer_out) 66 41 00001130 opus_repacketizer_out_range = @ILT+288(_opus_repacketizer_out_range) 67 42 00001410 opus_strerror = @ILT+1024(_opus_strerror) Summary 1000 .00cfg 8000 .data 1000 .gfids 1000 .idata 1000 .msvcjmc 10000 .rdata 3000 .reloc 1000 .rsrc 85000 .text What exactly is not clear is the presence of an underscore in function names which is written in brackets?
The problem itself was discovered when trying to find the address of the function opus_encoder_destroy , always returns 0 .
Is this some kind of name decoration, or is it some kind of bug or something?