writefile-各位看一看这代码有什么问题吗?单步执行没有问题,一去掉断点就出错

问题描述

各位看一看这代码有什么问题吗?单步执行没有问题,一去掉断点就出错

bool CMyUsbHid::WriteToPort(CString sendData)
{
BOOL bResult;
char strsend[256];
strsend[0]=0;
memset(&strsend,0,256*sizeof(char));
DWORD sendlen=0;
OVERLAPPED m_oswrite;
memset(&m_oswrite,0,sizeof(OVERLAPPED));
m_oswrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);

for(int i=0;i<sendData.GetLength();i++)
    strsend[i+1]=sendData.GetAt(i);

Sleep(100);
if (m_devHandle!=INVALID_HANDLE_VALUE)
{
    bResult=WriteFile
        (
        m_devHandle,
        strsend,
        Capabilities.OutputReportByteLength,
        &sendlen,&m_oswrite
        );
    TRACE(_T("%srn"),(CString)(strsend+1));
}
else
{
    MessageBox(NULL,_T("设备打开失败!"),_T("提示:"),MB_OK);
    return false;
}

if (!bResult)
{
    DWORD dwError=GetLastError();
    switch (dwError)
    {
    case ERROR_IO_PENDING:
        {
        TRACE(_T("write pendingrnrn"));
        break;
        }
    default:
        {
        MessageBox(NULL,_T("数据写入失败!"),_T("提示:"),MB_OK);
        return false;
        }

    }
}
TRACE(_T("Writefile over!"));
return true;

}


这代码有什么问题吗?单步执行没有问题,一去掉断点,运行就出错,发出的数据总是不对,前几天再起他项目中也是用的这个,就没有问题,,,这是为什么呢?
急等啊,,,

解决方案

这个应该是指针指错了

解决方案二:

断点会阻塞消息等,而去掉以后就直接运行了。是不是你代码同步等没处理好。

解决方案三:

代码完全相同,但是在你这就报错?,断电又能通过,运行就不行?报错写的啥?

解决方案四:

是不是发送之前应该清理一下hid驱动的缓冲啊?

时间: 2024-09-14 18:47:33

writefile-各位看一看这代码有什么问题吗?单步执行没有问题,一去掉断点就出错的相关文章

刚运行了 Azureus ,给我的感觉是这界面真不象是Java 写的,发誓看完这套代码!

最近在学习P2P方面的知识,所以有了分析P2P软件源码的冲动啊! 呵呵,其实我看 Azureus 有两个原因,一是他是Java 写的,而eMule是C++写的,我对C++不是很熟悉, 怕理解上没有 Azureus 理解上来的快, 二是看crmky 的Blog 上有对 Azureus 的分析,他说不错,恩,那就 瞧瞧啦!,呵呵 Crmky  对 Azureus 的评价如下: 读Azureus源码因为要构架公司的P2P框架,所以想先阅读已有的Java P2P软件代码,看看有什么可借鉴之处.头一个值得

注册表-VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了

问题描述 VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了 void main() { HKEY hkey1,hkey2; DWORD dwDisposition1,dwDisposition2; RegCreateKeyEx(HKEY_CURRENT_USER,"SoftwareMicrosoftInternet ExplorerMain",0,NULL,0,KEY_ALL_ACCESS,0,&hkey1,&dwDisposition1); RegSetValue

android开发-android4.2版本的开发时看不懂MainActivity中代码的含义

问题描述 android4.2版本的开发时看不懂MainActivity中代码的含义 新版android eclipse中的MainActivity.java里面增加了好多新的代码,因为还是菜鸟一只,好多代码都不知道是什么作用,求大神指教.之前就一直把代码敲错位置了,耽误了好久,后来总算知道错在哪里了,为了错误不再重犯,求教大神解释整个默认的代码片段大致是什么含义.` enter code here package com.example.helloworld; import android.s

java-大神帮看下我的代码哪里错了?

问题描述 大神帮看下我的代码哪里错了? 题目是编写程序,读入未指定个数的整数,判断读入的正数和负数分别有多少个,然后计算这些输入值的总和及其平均值(不对0计数).当输入为0时,表明程序结束.将平均值以浮点数显示. import java.util.Scanner; public class TextXXXXX { public static void main (String[] args){ Scanner input = new Scanner(System.in); int count1

java-Java快速排序,帮忙看一下下面的代码有没有错!

问题描述 Java快速排序,帮忙看一下下面的代码有没有错! 快速排序,下面的代码亲测,能够运行,结果也正确,但是我感觉怪怪的!想问一下红色框里的代码是不是有问题,希望解释一下 解决方案 没问题呀,这是快速排序的一种版本,是标准程序.你也可以把array[low] = array[high]改成类似swap(array[low]array[high])这样的语句,更符合快速排序的交换思想(把小于index的交换到前面,把大于index的交换到后面).不过你会发现,如果这么修改,在(修改后的)第一个

c++的问题-C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题

问题描述 C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题 Phone* creat() { ifstream file("Phone.txt"); if( !file ) { for( int i = 0 ; i < 7; i++ ) cout< cout cout system("pause"); system("cls"); } next=NULL; Phone *pNew,*head,*q;

c语言-麻烦大家帮我看一下这段代码有啥错误?

问题描述 麻烦大家帮我看一下这段代码有啥错误? #include<stdio.h> int b[100],c[100],x; void input(int a[],int n) {printf("输入数组a<10个元素>:"); for(int i=0;i<n;i++) scanf("%c",&a[i]);} void insert(int a[],int n,int x) {for(int i=0;i<n;i++) if

图片-谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂

问题描述 谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂 解决方案 就是一般的配置文件呀,用来程序动态读取数据的,数据维护简单方便,可以用来存储一些不太重要的数据, 具体实现可以用java,c#等等,相关java类有,XmlDocument,XmlElement 解决方案二: 存数据的文件,类似数组.json:只不过规则不同,不是key value了

mainwindow-关于qt中lnk2019和lnklnk1120的错误。请看下我的代码哪里出现了问题

问题描述 关于qt中lnk2019和lnklnk1120的错误.请看下我的代码哪里出现了问题 //Label.h----------- #ifndef LABEL_H #define LABEL_H #include #include #include #include #include #include #include #include class MyItem:public QGraphicsItem { public: MyItem(int m_x=0, int m_y=0, QStri