回复 2楼 仰望星空的
1.非常感谢你给我的建议,让我省去了不用看动态链接库的麻烦了,
2.你说的很对,仪器和电脑是通过接口(usb)连接的,我再想问下高手,你以前也写过类似的程序,麻烦你好人帮到底,这个串口调试程序我该看哪方面的内容,
3.下面是我的程序以及出错的地方,麻烦帮我看看好吗,非常感谢
4/ TestDlg.cpp : 实现文件
//
#include "stdafx.h"
//using namespace std;
#include "Myximea.h"
#include "TestDlg.h"
#include "string.h"
#include "windows.h"
//#include "xiApi.h"
#include "memory.h"
XI_IMG image;
memset(&image,0,sizeof(image));
image.size = sizeof(XI_IMG);
HANDLE xiH = NULL;
int XI_RETURN stat = XI_OK;
// CTestDlg 对话框
IMPLEMENT_DYNAMIC(CTestDlg, CDialog)
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTestDlg::IDD, pParent)
//, m_num1(_T(""))
//, m_num2(_T(""))
//, m_num3(_T(""))
{
}
CTestDlg::~CTestDlg()
{
}
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_num1);
//DDX_Text(pDX, IDC_EDIT2, m_num2);
//DDX_Text(pDX, IDC_EDIT3, m_num3);
}
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_BN_CLICKED(IDOK, &CTestDlg::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CTestDlg::OnBnClickedCancel)
//
ON_EN_CHANGE(IDC_EDIT2, &CTestDlg::OnEnChangeEdit2)
ON_BN_CLICKED(IDCOUNT, &CTestDlg::OnBnClickedCount)
ON_BN_CLICKED(IDSTOPAC, &CTestDlg::OnBnClickedStopac)
END_MESSAGE_MAP()
// CTestDlg 消息处理程序
void CTestDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
}
void CTestDlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
OnCancel();
}
void CTestDlg::OnEnChangeEdit2()
{
// TODO:
如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO:
在此添加控件通知处理程序代码
}
void CTestDlg::OnBnClickedCount()
{
// TODO: 在此添加控件通知处理程序代码--开始采集
/*int num1,num2,num3;
CString str1,str2,str3;
GetDlgItem(IDC_EDIT1)->GetWindowText(str1);
GetDlgItem(IDC_EDIT2)->GetWindowText(str2);
num1=_ttoi((LPCTSTR)str1);
num2=_ttoi((LPCTSTR)str2);
num3=num1+num2;
_itow(num3,(TCHAR*)str3.GetBuffer(10),10);
str3.ReleaseBuffer();
GetDlgItem(IDC_EDIT3)->SetWindowText(str3);*/
stat = xiOpenDevice(0, &xiH);
HandleResult(stat,"xiOpenDevice");
XI_RETURN xiOpenDevice(IN DWORD DevId, OUT PHANDLE * hDevice);
XI_RETURN xiStartAcquisition(IN HANDLE hDevice);
HandleResult(stat,"xiSetParam(exposure set)");
}
void CTestDlg::OnBnClickedStopac()
{
// TODO: 在此添加控件通知处理程序代码 --停止采集
//XI_RETURN xiStopAcquisition(IN HANDLE hDevice);
//XI_RETURN xiCloseDevice(IN HANDLE hDevice);
}
1>------ 已启动生成: 项目: Myximea, 配置: Debug Win32 ------
1>正在编译...
1>stdafx.cpp
1>正在编译...
1>Myximea.cpp
1>MainFrm.cpp
1>MyximeaDoc.cpp
1>MyximeaView.cpp
1>TestDlg.cpp
1>.\TestDlg.cpp(16) : error C2146: 语法错误 : 缺少“;”(在标识符“image”的前面)
1>.\TestDlg.cpp(16) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\TestDlg.cpp(16) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\TestDlg.cpp(17) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\TestDlg.cpp(17) : error C2365: “memset”: 重定义;以前的定义是“函数”
1>
C:\Program Files (x86)\VC\include\string.h(57) : 参见“memset”的声明
1>.\TestDlg.cpp(17) : error C2078: 初始值设定项太多
1>.\TestDlg.cpp(18) : error C2143: 语法错误 : 缺少“;”(在“.”的前面)
1>.\TestDlg.cpp(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\TestDlg.cpp(18) : error C2086: “int image”: 重定义
1>
.\TestDlg.cpp(16) : 参见“image”的声明
1>.\TestDlg.cpp(22) : error C2146: 语法错误 : 缺少“;”(在标识符“stat”的前面)
1>.\TestDlg.cpp(22) : error C2513: “stat”: 在“=”前没有声明变量
1>.\TestDlg.cpp(22) : error C2065: “XI_OK”: 未声明的标识符
1>.\TestDlg.cpp(101) : error C2513: “stat”: 在“=”前没有声明变量
1>.\TestDlg.cpp(102) : error C2275: “stat”: 将此类型用作表达式非法
1>
C:\Program Files (x86)\VC\include\wchar.h(502) : 参见“stat”的声明
1>.\TestDlg.cpp(101) : error C3861: “xiOpenDevice”: 找不到标识符
1>.\TestDlg.cpp(102) : error C3861: “HandleResult”: 找不到标识符
1>.\TestDlg.cpp(104) : error C2146: 语法错误 : 缺少“;”(在标识符“xiOpenDevice”的前面)
1>.\TestDlg.cpp(104) : error C2275: “DWORD”: 将此类型用作表达式非法
1>
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(152) : 参见“DWORD”的声明
1>.\TestDlg.cpp(104) : error C2146: 语法错误 : 缺少“)”(在标识符“DevId”的前面)
1>.\TestDlg.cpp(104) : error C2059: 语法错误 : “)”
1>.\TestDlg.cpp(105) : error C2146: 语法错误 : 缺少“;”(在标识符“xiStartAcquisition”的前面)
1>.\TestDlg.cpp(104) : error C3861: “xiOpenDevice”: 找不到标识符
1>.\TestDlg.cpp(105) : error C2275: “HANDLE”: 将此类型用作表达式非法
1>
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(402) : 参见“HANDLE”的声明
1>.\TestDlg.cpp(105) : error C2146: 语法错误 : 缺少“)”(在标识符“hDevice”的前面)
1>.\TestDlg.cpp(105) : error C2059: 语法错误 : “)”
1>.\TestDlg.cpp(106) : error C2275: “stat”: 将此类型用作表达式非法
1>
C:\Program Files (x86)\VC\include\wchar.h(502) : 参见“stat”的声明
1>.\TestDlg.cpp(105) : error C3861: “xiStartAcquisition”: 找不到标识符
1>.\TestDlg.cpp(106) : error C3861: “HandleResult”: 找不到标识符
1>正在生成代码...
1>生成日志保存在“file://g:\xiMEA\program\Myximea\Myximea\Debug\BuildLog.htm”
1>Myximea - 28 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========