|

楼主 |
发表于 2008-7-3 10:03:00
|
显示全部楼层
回复 2# cpubbs 的帖子
下面是主程序。请大狭帮忙查找一下出错的原因,小弟先在这里拜谢了。
#include <windows.h>
#include "excel2000.h"
#include <analysis.h>
#include "toolbox.h"
#include <rs232.h>
#include "analysis.h"
#include <mmsystem.h>
#include <asynctmr.h>
#include <utility.h>
#include <ansi_c.h>
#include <cvirte.h>
#include <userint.h>
#include "ScanFrq.h"
static ExcelObj_App ExcelAppHandle = 0;
static ExcelObj_Workbooks ExcelWorkbooksHandle = 0;
static ExcelObj_Workbook ExcelWorkbookHandle = 0;
static ExcelObj_Window ExcelWindowHandle = 0;
static ExcelObj_Sheets ExcelSheetsHandle = 0;
static ExcelObj_Worksheet ExcelWorksheetHandle = 0;
static ExcelObj_Range ExcelRangeHandle = 0;
static ExcelObj_Dialog DialogHandle = 0;
static VARIANT MyCellRangeV;
static ERRORINFO ErrorInfo;
BSTR TempBSTR=0;
char fileName[MAX_PATHNAME_LEN];
WAVEFORMATEX m_WaveFormatEx;
HWAVEOUT m_hPlay;
HWAVEIN m_hRecord;
LPWAVEHDR OutlpHdr, InlpHdr;
#define SamplesRate 11000
int CycNum;
static int SamplesLength, InputNum;
double Vrms0=0, Vrms;
int Fo=0, FoCount=0, VrmsCount=0, Count=0;
static double MeanVal, StdDist, MeasArray[30];
short *iOutput, *iInput;
double *fOutput, *fInput,*f1Output;
double *sineWave=NULL;
double Phase=0.0;
static int panelHandle;
static int StartFrq, StopFrq, StepFrq, ATimerCount;
static double StepTime, Level, freq, sinefreq;
static int ATimerID=0;
int CVICALLBACK ATimer_Process (int panel, int control, int event,void *callbackData,
int eventData1, int eventData2);
int Test(void);
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
if (InitCVIRTE (hInstance, 0, 0) == 0)
return -1;
CA_InitActiveXThreadStyleForCurrentThread (0, COINIT_APARTMENTTHREADED);
SetSleepPolicy (VAL_SLEEP_MORE);
if ((panelHandle = LoadPanel (0, "ScanFrq.uir", PANEL)) < 0)
return -1;
Clear1D (MeasArray, 30);
Count=MeanVal=StdDist=0;
SetCtrlVal(panelHandle, PANEL_Count, Count);
SetCtrlVal(panelHandle, PANEL_Avage, MeanVal);
SetCtrlVal(panelHandle, PANEL_STD_V, StdDist);
do
{
ATimerID=NewAsyncTimer(0.01, -1, 0, ATimer_Process, 0);
}
while(ATimerID<=0);
OpenComConfig(1, "", 9600, 1, 8, 1, 256, 256);
memset(&m_WaveFormatEx,0x00,sizeof(m_WaveFormatEx));
m_WaveFormatEx.wFormatTag = WAVE_FORMAT_PCM;
m_WaveFormatEx.nChannels = 1;
m_WaveFormatEx.wBitsPerSample = 16;
m_WaveFormatEx.cbSize = 0;
m_WaveFormatEx.nSamplesPerSec = SamplesRate;
m_WaveFormatEx.nAvgBytesPerSec = m_WaveFormatEx.nSamplesPerSec*(m_WaveFormatEx.wBitsPerSample/8);
m_WaveFormatEx.nBlockAlign = (m_WaveFormatEx.wBitsPerSample/8)*m_WaveFormatEx.nChannels;
DisplayPanel (panelHandle);
RunUserInterface ();
waveOutReset(m_hPlay);
waveOutClose(m_hPlay);
waveInReset(m_hRecord);
waveInClose(m_hRecord);
if (iOutput) free(iOutput);
if (fOutput) free(fOutput);
if (iInput) free(iInput);
if (fInput) free(fInput);
DiscardPanel (panelHandle);
CloseCom (1);
DiscardAsyncTimer (-1);
return 0;
}
*******************************************************************
编译时具体的出错信息如下:
3 Project link errors
——Undefined symbol '_NewAsyncTimer@24' referenced in "ScanFrq.c".
——Undefined symbol '_DiscardAsyncTimer@4' referenced in "ScanFrq.c".
——Undefined symbol '_ATimer_Process' referenced in "ScanFrq.c".
********************************************************************* |
|