QT use DLL from vc6



  • 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?



  • finally i got the reason by myself
    the DLL i called is depend on another
    when i copy the dll to workspace it depend both way works


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.