2015-10-22 2 views
-1

У меня есть файл Xsteam.dll, который работает во всех моих проектах LABVIEW; но теперь я хочу использовать его (Xsteam.dll) в простом визуальном проекте на C++ (в visual studio 2013 или ...).У меня есть только файл dll без файлов .h и .lib. Как его использовать в vC++?

У меня нет других связанных с ним файлов (например, * .h, * .lib и т. Д.).

Я знаю, что Xsteam.dll написан на языке c/C++, и я знаю все его функции и переменные типы их входов и выходов arg.

Я обычно использую Xsteam.dll в LabView при такой настройке:

library name or path: c:\XSteam.dll   
function name:   h_pT   
thread:    run in UI thread   
calling convention:  stdcall(WINAPI)     
function prototype : double [email protected](double arg1, double arg2);  

return type : Numeric 8-byte double   
arg1:  Numeric 8-byte double Pass: Value    
arg2: Numeric 8-byte double  Pass: Value     

prototype for these procedures: 
           MgErr Proc(InstanceDataPtr *instanceState); 

Как использовать Xsteam.dll с помощью простой программы VC++?

+0

Будьте осторожны, чтобы проверить, соответствует ли DLL вашей программе на C++, то есть не смешивать 32-битные и 64-разрядные библиотеки и программы. – Mikhail

+0

Можете ли вы использовать эту .dll? а затем дать мне свои коды? Этот простой проект может быть очень полезным для других людей, что у них одинаковые проблемы, и ваша работа очень важна. кстати, ваше руководство великолепен. – nanosi

ответ

2
example: 
HMODULE hModule = LoadLibrary("c:\\XSteam.dll"); 
typedef double (* FNPTR) (double , double); 
       FNPTR pfn = (FNPTR)hModule.GetProc("h_pT"); 
       if (NULL != pfn) 
       { 
        double result=pfn(arg1, arg2); 
       } 
+0

Большое спасибо. но я новичок, и я не мог его использовать. Должен ли я писать эти сценарии в новом проекте VC++ и строить (компилировать) его? Я сделал это, и я увидел много ошибок. – nanosi

1

Вам необходимо создать файл заголовка и использовать dumpbin и lib для создания библиотеки импорта (* .lib). Посмотрите here или here.

+0

Трудно понять содержание ссылок для меня. В дополнение у меня нет файлов .h или .lib, у меня просто есть Xsteam.dll, который имеет много функций. Каждая функция ловит два входных номера и дает номер выхода. Я знаю эти функции, и я хочу использовать один из них для поиска решения. Мне нужна простая программа для ее использования. Большое спасибо. – nanosi

+0

Прежде всего, вам нужно создать файл заголовка. Поскольку вы уже знаете сигнатуры функций, вы можете сделать это легко, например. 'extern" C "__declspec (dllimport) double h_pT (double, double)'. Затем запустите dumpbin на dll, как описано в ссылке, чтобы сгенерировать файл .def. Запустите lib в файле .def для создания файла .lib. Наконец, вы будете использовать файл .lib с вашей программой во время связывания. – kjpus

+0

Мне нужно больше учиться на VC++, и теперь я не могу использовать эту .dll. можете ли вы написать тот скрипт, который использует этот .dll? Спасибо. – nanosi

Смежные вопросы