EDN首页   博客首页

2

关于投票
visual c++ 6.0在编译时停在linking...的解决办法。
有时候VC在编译时就停在了linking...然后失去响应,必须使用任务管理器强行关闭才行,这个问题的确恼人。我查了很多也没查到,网上给的答案一般都是说D版的BUG问题,或者是SP5补丁问题,可是我的是SP6补丁。
后来我把瑞星杀毒软件关了,再怎么测试也没出现这个问题,看来是杀毒软件造成的。

系统分类: 软件开发
用户分类: VC++
标签: VC 无响应 停止 linking
来源: 原创
发表评论 阅读全文(235) | 回复(0)

1

关于投票
第一个OPENGL的VC程序。附代码。
需要使用OPENGL做3D了。
很多教材和网上的资料说的含糊不清,这里手把手教如何建立最简单的一个OPENGL程序。
首先打开VC,建立一个工程,随便起名字,工程种类选择win32 console application,建立一个空工程。
然后在工程中选择file...  new...建立一个C++ source file并保存,名字随便起。
随后,在project--settings...--link卡中,在object/library module中加入   opengl32.lib glu32.lib glaux.lib  ,中间用空格隔开。
然后复制本文最后的代码进去编译并运行就可以看到效果了。
这个是最简单的OPENGL程序,希望读者可以亲手做做。

// GLOS.H
//////////////////////////////////////////////////////////
// This is an OS specific header file
//判别操作系统的基本头文件
 
#include "windows.h"
 
// disable data conversion warnings
 
#pragma warning(disable : 4244)     // MIPS
#pragma warning(disable : 4136)     // X86
#pragma warning(disable : 4051)     // ALPHA
//////////////////////////////////////////////////////////
//opengl.cpp
//主程序
//#include "windows.h"
#include <GL/gl.h>
#include <GL/glaux.h>
//#include "windows.h"
 
void main(void)
{
        /*初始化:*/
    auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
        //窗口显示单缓存和RGB(彩色)模式
        auxInitPosition(0,0,1000,1000);
        //大小x=1000 y=1000 (0,0)是屏幕左上点
        auxInitWindow("sample1");
        //窗口初始化,参数是标题
        glClearColor(0.0,0.0,0.0,0.0);
    //将窗口清为黑色
        glClear(GL_COLOR_BUFFER_BIT);
    //将颜色缓存清为glClearColor命令所设置的颜色
        //即背景色
 
        /*绘图*/
        glColor3f(1.0,1.0,0.0);
        //选颜色(R,G,B),参数0<x<1,这里就是红色
        glRectf(-0.5,-0.5,0.5,0.5);
        //glRectanglef(-0.5,-0.5,0.5,0.5);
        //画个方块
 
        glFlush();
        //强制绘图,不驻留缓存
        _sleep(1000);
        //windows函数,显示1秒(单位是毫秒)
}
系统分类: 软件开发
用户分类: VC++
标签: VC OPENGL
来源: 原创
发表评论 阅读全文(488) | 回复(0)

5

关于投票
[强货来了]VC++入门系列1----Visual C++ 6 轻松进阶
附件11M,太大了这个传不了,这个教材是教VC++这门课的老师推荐的,入门很快,里面的实验都是手把手教,个人认为虽然内容比不上孙鑫的视频教程那么丰富,但是短期上手快是没问题的。
另外,我个人已经把本书内的几乎全部实验都做成了VC++的工程,随后上传,配合我的程序和这本书,相信对于初学VC的朋友来说,绝对是个很好的教材。
随后将分批上传实验代码。
现在上传个书的目录请大家看看是否需要。

pdf

本书获得方法:先按“顶一下”(随意,呵呵),然后留言邮箱地址,我将一一发送。请注意邮箱一定要支持10M以上的大附件,否则收不到可不怪我,你可以使用QQ或者163的信箱。
系统分类: 软件开发
用户分类: VC++
标签: VC C++ 学习 入门
来源: 原创
发表评论 阅读全文(541) | 回复(7)

2

关于投票
智能车故障解决两例。

首先感谢COCAPPJJ的留言,EDN博客的稳定和繁荣需要大家一起的努力。还是那句老话,一人有一个技术,两个人就会有三个技术;一人有一个苹果,两个人就会有两个苹果;一人有一个观点,两个人带来的是一场争吵。不管怎样,我在EDN上发了约40篇文章,几乎都是原创,讲证券的不在少数,精华也有几篇,精华率还是不低的,可以说,本博客还有一定的存在价值。

下面说说另外两例FREESCALE智能车故障现象及解决办法:

1、故障现象:BDM不使用USB供电,智能车使用电池供电,程序可以下载,但是一调试就“跑飞”。

故障原因:电池电量不足,造成大负载无法工作。

解决办法:用万用表测量电池电压,若小于7V就不要再使用,更换新电池即可。

2、故障现象:舵机转向不灵活,有“卡卡卡”异响。

故障原因:舵机控制PWM波周期太短。

解决办法:在舵机手册中的参考周期为14.2ms,而舵机居中高电平为1.5ms,如果PWM周期太短,则会造成上述故障,个人感觉周期在13ms左右就差不多,也就是说,如果总线周期为40MHz,PWM为8分频,则PWMPER的设置应该为65000(用前算一下免得出错)。

 

另外,这些故障解决办法是本人原创而不是抄袭,在全国比赛完成后,会把所有故障都总结起来发在这里。

系统分类: 汽车电子
用户分类: VC++
标签: 无标签
来源: 原创
发表评论 阅读全文(540) | 回复(0)

2

关于投票
COLDFIRE的BDM及系统板制作完毕。
BDM应该可以用了,IDE使用codewarrior 6.3,可以使用。BDM使用一片28脚带USB的JB16和74HC14制作,而系统板则支持相当多的功能,目前来看似乎没有问题。只是对CW6.3还不太熟悉,未来几天要熟悉一下。然后分模块调试。
系统分类: 汽车电子
用户分类: VC++
标签: 无标签
来源: 原创
发表评论 阅读全文(1142) | 回复(0)

3

关于投票
最近看些操作系统方面的。

·为什么要看操作系统方面的书。

主要还是因为比较时髦,再说这样的软件个人稍微爱好些(硬件做得太烂)。

·什么计划。

计划暂时是研究一下uCOS-II,虽然是会用了,但是理解却不够深刻,学习它,要理解机理,甚至每一个运行的细节都透不过你的眼睛。另外个人打算近期内写好自己的最小操作系统,然后加上OS SHELL。

当然并不是运行在PC上的,嵌入式操作系统。

另外进度在这里会一直记录。

系统分类: 软件开发
用户分类: VC++
标签: 嵌入式 操作系统
来源: 原创
发表评论 阅读全文(912) | 回复(0)

1

关于投票
C语言编写的奇怪函数。

比如:

void function ( char para)

{

    para="para";

}

这样一个函数。

para=para这句看上去似乎没用,其实是为了消除编译器的警告信息而写的。

 

系统分类: 软件开发
用户分类: VC++
标签: 无标签
来源: 原创
发表评论 阅读全文(902) | 回复(0)

2

关于投票
使用vc ADO访问access数据库统一模版

 直接复制过去修改就可以使用.要读读程序理解一下.

//=======================================================

_ConnectionPtr m_pConnection; //定义连接
 CoInitialize(NULL);//初始化
 m_pConnection.CreateInstance(__uuidof(Connection));
     try               
     {   
         // 打开本地Access库db1.mdb
         m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data    

  Source=db1.mdb","","",adModeUnknown);//注意mdb1.mdb的保存位置
       
     }
 catch(_com_error e)
 {
 AfxMessageBox("connect error");
 }
 _RecordsetPtr m_pRecordset;
 m_pRecordset.CreateInstance(__uuidof(Recordset));

 try
 {   
  m_pRecordset->Open("SELECT * FROM table1",     
  m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
  dOpenDynamic,
  adLockOptimistic,
  adCmdText);
 }
 catch(_com_error *e)
 {
  AfxMessageBox("get recordset error");
 }

 _variant_t var;
 CString str1,str2,str3;
 try
 {
  if(!m_pRecordset->BOF)
   m_pRecordset->MoveFirst();//移动到第一个记录
  else
  {
   AfxMessageBox("no data");
  }

         while(!m_pRecordset->adoEOF)
         {
   var=m_pRecordset->GetCollect("id");
   if(var.vt != VT_NULL)
                  str1= _com_util::ConvertBSTRToString((_bstr_t)var);
   var = m_pRecordset->GetCollect("name");
              if(var.vt != VT_NULL)
                      str2=_com_util::ConvertBSTRToString((_bstr_t)var);
   var = m_pRecordset->GetCollect("score");
              if(var.vt != VT_NULL)
                      str3=_com_util::ConvertBSTRToString((_bstr_t)var);
   AfxMessageBox(str1+"|"+str2+"|"+str3);
       
              m_pRecordset->MoveNext();
         }
     }
 catch(_com_error *e)
     {
         AfxMessageBox("operate error");
     }

系统分类: 软件开发
用户分类: VC++
标签: VC ADO ACCESS MDB 数据库
来源: 原创
发表评论 阅读全文(1750) | 回复(0)

1

关于投票
关于VC使用控件数组。

用过VB的知道,VB中控件数组的概念的确极大方便了编程。其实在VC中同样可以使用控件数组,但是是以起别名的方式来实现的。

最近做了一个对话框程序,由于静态文本(STATIC)比较多,所以考虑使用控件数组。控件数组在VC中的使用显然比在VB中麻烦些。现在以使用STATIC数组为例简单说一下。

在程序中使用11个STATIC,如果要做成数组,必须首先声明一个字符串数组:

CString str[11];

然后在DoDataExchange()函数中加入以下代码(BTW:此函数用于数据交换,一看名字就知道了):

 DDX_Text(pDX, IDC_T1, str[0]);
 DDX_Text(pDX, IDC_T2, str[1]);
 DDX_Text(pDX, IDC_T3, str[2]);
 DDX_Text(pDX, IDC_T4, str[3]);
 DDX_Text(pDX, IDC_T5, str[4]);
 DDX_Text(pDX, IDC_T6, str[5]);
 DDX_Text(pDX, IDC_T7, str[6]);
 DDX_Text(pDX, IDC_T8, str[7]);
 DDX_Text(pDX, IDC_T9, str[8]);
 DDX_Text(pDX, IDC_T10, str[9]);
 DDX_Text(pDX, IDC_T11, str[10]);

where,IDC_TX是文本ID。

当然这里有常见错误。

1、出现parsing error错误。检查此函数内的数据交换定义,看看是否破坏函数结构。

2、出现程序的非法操作(afx.inl错误)。检查控件ID名是否重复,定义是否重复,反正是一切重复都要避免。

另外本人有一个疑问,就是STATIC静态文本只能用DDX_Text进行定义,而不能使用DDX_Control,没有想清楚为什么。也请有经验人给予解答,谢谢!

 

 

系统分类: 软件开发
用户分类: VC++
标签: VC 静态文本 IDC_STATIC 控件数组 afx inl parsing error
来源: 原创
发表评论 阅读全文(1467) | 回复(0)

0

关于投票
学VC的步骤

现在依然是学VC的热潮,尤其是自动化专业做上位机软件,图象处理或理论部分的。

学VC首先学习画界面是不对的,因为那个跟VB差不多,只画好界面无法连接到程序是没有用的。

个人认为学习VC应该按照以下办法:

1、C++要熟练掌握,这样才能理解面向对象的编程思想;

2、从CDC类入手,深入浅出;

3、MFC搞熟点。

这样在一般学习者中已经算是个高手了。最重要的是编程思想,千万别再用面向过程的编程思想来套了。

系统分类: 单片机
用户分类: VC++
标签: VC 学习
来源: 原创
发表评论 阅读全文(1085) | 回复(1)
2下一页总共 , 当前 /