编译Polar软件平台在VS2013中无法运行

时间:2014-09-05 08:20:25

标签: c++ visual-studio

我正在开发一个需要使用IRda从Polar心率设备读取数据的项目。 Polar有一个通信DLL和我从他们的网站下载的一些示例源。它说它是用VS v 6.0编译的。我没有那个编译器,VS2013会抛出很多编译错误。

文件集包括:hrmcom.dll,hrmcom.h,hrmcom.lib,HRMComRSCS.h。

我正在寻找一种在VS 6.0模式下编译源代码的方法。这可能与最新的VS?我不是一个优秀的程序员,从头开始使用交付的dll和/或lib。它只有关于界面的文档和使用上述文件的示例源。我搜索了类似的Q但是在版本中没有一个回溯。

有什么建议吗?我是不是死路了??

编辑: 以下是示例源代码。

void fnPolarSampleConnection (HWND hWnd)
{
POLAR_SSET_GENERAL  psg;
POLAR_SSET_MONITORINFO  psmi;
POLAR_EXERCISEFILE  pef;
int             iSamplingRate, i, iTotal, iHR, iSpeed;
TCHAR               tcFile[MAX_PATH];

if (!fnHRMCom_ResetIRCommunication (0))
{
    // Resetting IR connection was not successful
    break;
}

if (!fnHRMCom_StartIRCommunication (HRMCOM_PARAM_IRDA, ”IR”))
{
    // Port couldn't be opened, stop connection thread
    fnHRMCom_EndIRCommunication (FALSE);
    break;
}

// Fill general information
ZeroMemory (&psg, sizeof(psg));

psg.iSize          = sizeof (psg);
psg.iConnection    = HRMCOM_CONNECTION_IR;
psg.bConnectionDlg = TRUE;
psg.hOwnerWnd      = hWnd;  // Owner window handle

// Reset monitor information
ZeroMemory (&psmi, sizeof(psmi));

// Read monitor info from HR monitor
if (!fnHRMCom_ReadMonitorInfo (&psg, &psmi))
{
    // Reading failed, close connection
    fnHRMCom_EndIRCommunication (FALSE);
    break;
}

for (i = 0; i < psmi. iTotalFiles; i++)
 {
 if (!fnHRMCom_ReadExerciseFile (hDlg, i, FALSE))
 {
// Save analyzed file as HRM
ZeroMemory (&szFile, sizeof (szFile));
strcpy (szFile, ”c:\\temp\\exercise.hrm”);

if (!fnHRMCom_SaveExerciseHRM (hDlg, szFile, 0))
{
            // Saving failed...
}

// Read sampling (recording) rate
iSamplingRate = fnHRMCom_GetRecParam (REC_SAMPLING_RATE);

// Read total number of samples
iTotal = fnHRMCom_GetNbrOfHRMSamples ();

// Get all heart rate and speed values
for (i = 0; i < iTotal; i++)
{
    iHR = fnHRMCom_GetHRMSamples (CC_HRATE, i);
    iSpeed = fnHRMCom_GetHRMSamples (CC_SPEED,i);
}

if (1 == fnHRMCom_GetRecParam (REC_EURO_US_UNITS))
{
    // Speed in mph, altitude in feet
}
else
{
    // Speed in km/h, altitude in meters
}
}
}

// Set HR monitor to watch mode
 fnHRMCom_SendMonitorToWatchMode (&psg);

// End IR communication
fnHRMCom_EndIRCommunication (FALSE);
 }

编译器有break语句的问题(这些应该返回吗?) 它在第二个if中使用的字符串“IR”有问题。这应该是一个LPTSTR tcPort变量(它作为示例“COM1:”,但对于IR,它没有常量或任何东西。 我目前无法运行编译器,但只要有时间,我就会这样做。

到目前为止,我已经感谢你的答复了。

下面是我能够编译的代码。我抛弃了一些我认为对代码工作不重要的东西。

#include <windows.h>
#include "hrmcom.h"

void main(HWND hWnd)
{
POLAR_SSET_GENERAL  psg;
POLAR_SSET_MONITORINFO  psmi;

int             iSamplingRate, i, iTotal, iHR, iSpeed;


if (!fnHRMCom_ResetIRCommunication(0))
{
    // Resetting IR connection was not successful
    return;
}

if (!fnHRMCom_StartIRCommunication(HRMCOM_PARAM_IRDA, "IR"))
{
    // Port couldn't be opened, stop connection thread
    fnHRMCom_EndIRCommunication(FALSE);
    return;
}

// Fill general information
ZeroMemory(&psg, sizeof(psg));

psg.iSize = sizeof (psg);
psg.iConnection = HRMCOM_CONNECTION_IR;
psg.bConnectionDlg = TRUE;
psg.hOwnerWnd = hWnd;   // Owner window handle

// Reset monitor information
ZeroMemory(&psmi, sizeof(psmi));

// Read monitor info from HR monitor
if (!fnHRMCom_ReadMonitorInfo(&psg, &psmi))
{
    // Reading failed, close connection
    fnHRMCom_EndIRCommunication(FALSE);
    return;
}

for (i = 0; i < psmi.iTotalFiles; i++)
{
    if (!fnHRMCom_ReadExerciseFile(hWnd, i, FALSE))
    {
        // Read sampling (recording) rate
        iSamplingRate = fnHRMCom_GetRecParam(REC_SAMPLING_RATE);

        // Read total number of samples
        iTotal = fnHRMCom_GetNbrOfHRMSamples();

        // Get all heart rate and speed values
        for (i = 0; i < iTotal; i++)
        {
            iHR = fnHRMCom_GetHRMSamples(CC_HRATE, i);
            iSpeed = fnHRMCom_GetHRMSamples(CC_SPEED, i);
        }

        if (1 == fnHRMCom_GetRecParam(REC_EURO_US_UNITS))
        {
            // Speed in mph, altitude in feet
        }
        else
        {
            // Speed in km/h, altitude in meters
        }
    }
}

// Set HR monitor to watch mode
fnHRMCom_SendMonitorToWatchMode(&psg);

// End IR communication
fnHRMCom_EndIRCommunication(FALSE);
}

我想知道这个项目如何需要编译它现在是一个控制台程序,但似乎是调用父HWND的对话框窗口。我现在很困惑。为了使它工作,我需要更改fnPolarSampleConnection的名称。这可能是一个需要合并到Windows主应用程序中的函数吗?

0 个答案:

没有答案