Получилось добраться до функции в длл файле, теперь программа вылетает когда я пытаюсь вызвать функцию 
C++ (Qt)
class clRamData
        {
        public:
            double ramCount;
            long ramAvailable;
            QString ramError;
        };
 
typedef clRamData(_stdcall *fnRamData)();
 
void MainWindow::getRamInfo()
{
    QLibrary wmi_lib("WMI_access");
    wmi_lib.load();
    if (wmi_lib.isLoaded())
        qDebug() << "Loaded";
    else
        qDebug() <<"Not Loaded";
 
    fnRamData fn_ramData;
    fn_ramData = (fnRamData)wmi_lib.resolve("ramData");
 
    if (fn_ramData)
    {
        qDebug() << "ok..";
        clRamData ramInfo;
        qDebug() << "class created..";
        ramInfo = fn_ramData(); // тут программа вылетает....
        qDebug() << "function called..";
        qDebug() << "ram available: " << ramInfo.ramAvailable;
    }
    else qDebug() << "error";
}
Если закоментировать две строчки:   
C++ (Qt)
qDebug() << "function called..";
qDebug() << "ram available: " << ramInfo.ramAvailable;
то програмка запускается....
Я так понимаю, проблемма в том, что длл требует времени чтобы выполнить свою работу, а программа  не даёт ему (длл) достаточно времени, на это. Поэтому программа и вылетает.
Как можно узнать когда длл будет готов дать ответ?
методом тыка удалось запустить программу, добавил ещё одну строчку 
qDebug() << "ram count: " << ramInfo.ramCount;
и программа начала запускаться... вот только результат совсем не в тему получается
ram available:  0 
ram count:  5.28063e-308 Что-то я никак не пойму где тут собака зарыта....