求助:凌华PCI9111+ C++ builder 5.0(1) 点击:708 | 回复:5



>行者无疆<

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2003年8月27日
发表于:2003-09-01 10:57:00
楼主
求助凌华技术人员: 我购买了PCI9111数据采集卡,开发环境win2000,C++builder 5.0. 用bcpcidsak.lib(卡附带光盘中\LIB\bcpcidsak.lib)开发一段时间后,我发现我的应用程序老是关不掉(窗口关掉后,在任务管理器中显示应用程序还在运行); 于是我开始怀疑自带的bcpcidsak.lib,我就用C++ builder 自带的IMPLIB,把PCI-Dask.dll转化成lib文件,添加进项目中,结果还是一样.希望有经验的前辈帮我解决这个问题. 做了一个最简单的测试:一个Form,两个Button.编译通过,但结束不了进程???? Unit1.h //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include "Dask.h" //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TButton *Button2; TLabel *Label1; void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); private: // User declarations U16 CardID; public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Unit1.cpp //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { CardID=-1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { CardID = Register_Card(PCI_9111DG, 0); if (CardID >= 0) Label1->Caption="ok"; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { if (CardID >= 0) Release_Card (CardID); } //---------------------------------------------------------------------------



>行者无疆<

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2003年8月27日
发表于:2003-08-27 19:22:00
1楼
What can I do?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-08-28 10:51:00
2楼
Try to Release_Card() on FormClose()

>行者无疆<

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2003年8月27日
发表于:2003-08-28 11:04:00
3楼
我试了一下 void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { if (CardID >= 0) Release_Card (CardID); } 还是关不掉,在任务管理其中强制关的时候:出现警告对话框:无法终止进程!! 谢谢GaryLin的回复 Who can help me??急,在线等待

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2003-08-28 20:42:00
4楼
A:Register_Card(PCI_9111DG, 0);最好放在TForm1::FormCreate里面。因为Register_Card最好放在程序运行的最前面。 B:你用的PCIS-DASK版本是多少? C:请把你的程序发给zhangbin@adlinkchina.com.cn,我们试试看。

>行者无疆<

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2003年8月27日
发表于:2003-09-01 10:57:00
5楼
谢谢各位的指导 我的问题解决了 凌华的一位技术人员发给了我一份新的PCI-Dask.dll/pdask-bc.lib/ Dask.h,用上新版本后,我的程序没有问题了,谢谢!

热门招聘
相关主题

官方公众号

智造工程师