Переписываю c ++ dll и пытаюсь получить доступ к его функциям.
Ниже приведен вывод дампа / экспорта из dll:
Dump of file C:\C#Processes\SummarizerApp\SummarizerApp\lib\summarizer37.dll
File Type: DLL
Section contains the following exports for summarizer37.dll
00000000 characteristics
458962FF time date stamp Wed Dec 20 11:21:19 2006
0.00 version
1 ordinal base
4 number of functions
4 number of names
ordinal hint RVA name
1 0 00002960 ?delete_summarization@inxight@@YAXPAVsummarization_interface@1@@Z
2 1 00016240 ?delete_summarizer@inxight@@YAXPAVsummarizer_interface@1@@Z
3 2 000105E0 ?make_summarization@inxight@@YAPAVsummarization_interface@1@AAVsummarizer_interface@1@AAVbyte_stream_interface@1@ABVsummarization_input_options@1@ABVsummarization_sentence_output@1@ABVsummarization_phrase_output@1@PBDI5@Z
4 3 0001BC40 ?make_summarizer@inxight@@YAPAVsummarizer_interface@1@PBD00@Z
Summary
4000 .data
B000 .rdata
4000 .reloc
2E000 .text
Обратите внимание на порядковый номер 3. Он включает в себя несколько методов, которые мне нужно вызвать, а именно:
make_summarization
summarization_input_options
summarization_sentence_output
sumrization_phrase_output
Сделал JNI-обертку этой dll и знаю, что функции выше (которые все являются конструкторами классов) доступны из "extern C", который использует JNI, в неупорядоченной форме.
Могу ли я использовать свойство соглашения о вызовах dllimport для доступа к ним без украшений?
В мире C ++, что это означает, когда несколько функций экспортируются по одному и тому же порядковому номеру и каков метод доступа к ним?
Спасибо,
Jim