Я хочу использовать dll-файл в своем C-коде, но очень смущен синтаксисом.Использовать динамическую библиотеку dll в программе C
My Story: Я сделал простую функцию в Matlab (f (x1, x2) = x1 * x2), с помощью «Matlab Coder» я перевел его в C-Code и создал exe, я мог запускать его из терминал с аргументами. Теперь я сгенерировал dll вместо exe и хочу использовать dll.
С тех пор я не смог сделать объяснения Кодекса, я googled, работаю для меня. Я смотрю синтаксис в http://en.cppreference.com/w/, но, к моему удивлению, не было даже записи, например. GetProcAddress или LoadLirbary.
Здесь C-код, в котором я хотел бы использовать библиотеку DLL:
#include <stdio.h>
#include <stdlib.h>
/*
* In my dream I would load the dll function here
* with something like Load(mytimes4.dll)
*/
int main(int argc, char *argv[]) {
double x1,x2,myresult;
//Load Arguments from Terminal
sscanf(argv[1], "%lf", &x1);
sscanf(argv[2], "%lf", &x2);
// Use and print the function from mytimes4.dll
myresult = mytimes4(x1,x2);
printf("%3.2f\n",myresult);
return 0;
}
После создания библиотеки DLL, Matlab дал мне следующую папку: "dll-folder" produced by Matlab
Может кто-то дать мне самый простой, но полный код, который будет работать с моим примером? Какие файлы необходимы (возможно, .def или .exp)? Также для пояснений строк, связанных с использованием dll, я был бы признателен. Или, если нет, возможно, у вас есть некоторые базовые знания, которые делают сложный синтаксис разумным. Спасибо заранее!
Системная информация: Windows 7 Pro 64, Matlab 64 2016b, gcc cygwin 64, eclipse ide.
Я не удивлен, что cppreference не имеет записей для OpenLibrary и GetProcAddress - эти функции являются частью Windows API (не входит в C++ стандарт). Для описания OpenLibrary см. Https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx и, например, использование см. На странице https://msdn.microsoft.com. /en-us/library/windows/desktop/ms686944(v=vs.85).aspx для примера использования OpenLibrary и GetProcAddress. – thurizas
Вы можете проверить решение, которое я предложил этому сообщению [Ссылка на DLL в Pelles C] (http://stackoverflow.com/questions/40282524/link-to-a-dll-in-pelles-c). –
Каково содержание 'mytimes4.h' и' mytimes4.def'? –