PDA

View Full Version : qt call dll created by vc6



youfulan2015
19th August 2015, 01:07
qt 5.4+mingw+windows7 is my environment
I have the hole VC6 project ,i export a dll from vc6 the header like this:
#ifndef DLL_API
#define DLL_API extern "C" __declspec(dllimport)
#endif
#define WIN_API __stdcall
DLL_API WORD WINAPI dsoHTSearchDevice(short* pDevInfo);

DLL_API WORD WINAPI dsoHTDeviceConnect(WORD nDeviceIndex);
DLL_API WORD WINAPI dsoHTDeviceConnecttest(WORD nDeviceIndex) //this method do nothing but only to return a number to test ifthe dll works
.....................................
but when i try to use it in my qt ,it didnot work,I try in two way
1
LIBS +=-LD:/From_Peng/HTHardDll/HTHardDll -lHTHardDll
INCLUDEPATH +=D:/From_Peng/HTHardDll
i include the header file and call function
dsoHTDeviceConnecttest(0)
"DLL_API WORD WINAPI dsoHTDeviceConnecttest(WORD nDeviceIndex)
{
return 2;
}"which should return 2

but my debug exe go crash when call this fun
2
QLibrary myLib("D:/From_Peng/HTHardDll/HTHardDll/HTHardDll");

if(myLib.load())

{
qDebug()<<"load lib success";
}
else
{
qDebug()<<"load lib failed";

}
in this method it all ways output load lib failed
is there any guy know the reason?:)

youfulan2015
19th August 2015, 04:43
:( I have came out with the reason;
the dll i add to my pro is depend on another
when i copy it to directory where the exe exist in
everything goes well