Вызов C DLL из Фортрана - PullRequest
1 голос
/ 21 июня 2019

Я создал DLL на языке C с помощью __declspec (dllexport) VLENCODER f (...); и я хочу вызвать его из Фортрана, используя функции iso_c_binding. Я объявил следующий интерфейс:

function create_vlencoder_c(appKey) bind(C, name="create_vlencoder")
    use iso_c_binding
    implicit none         
    type(c_ptr) :: create_vlencoder_c
    character(len=1, kind=c_char), intent(in) :: appKey(*)
end function

Но во время компиляции компилятор жалуется на то, что символ _create_vlencoder не найден. Очевидно, ходок зависимости говорит мне, что перед моим именем в DLL нет подчеркивания. Как я могу запретить компилятору Фортрана добавлять подчеркивание к имени моей функции C?

PS: Я использую компиляторы Intel для C и Fortran в Windows.

1 Ответ

0 голосов
/ 22 июня 2019

Извините.Я более юникс и не привык к Visual Studio.Код Fortran был 32-разрядным, а код C - 64-разрядным, что приводит к разнице в оформлении и, следовательно, к проблеме.

...