小编Dan*_*dor的帖子

提高或降低串口RTS(C++)

我有一段代码可以读取串口CTS线的当前状态,然后应用程序进入适当的模式基于那里的值.

使用此处描述的零调制解调器电缆:

http://www.lammertbies.nl/comm/info/RS-232_null_modem.html#full

我可以检测通过该零调制解调器电缆连接的其他端口上的RTS线路.

有没有一种方法可以提高或降低RTS线?

平台是Win32,c ++,但任何关于何时提升或降低RTS行的信息都会有所帮助.

c++ winapi serial-port

2
推荐指数
1
解决办法
2258
查看次数

如果不是为了可重用性,那么制作用户控件是否"错误"?

我无法决定制作许多用户控件是好还是坏.我只是这样做因为我发现在没有很多组件的控件上工作更容易.如果需要修复某些东西,也会更容易.有点像你在很多课程中分割你的程序.

但是,在传递数据时,多个控件会增加一些复杂性.我想我的问题是,如果在winforms中进行GUI编程时创建一个"上帝"类是正常的.

我看到几乎所有视频教程,它们只能在一个表单上工作!虽然在我有表格之前我可以使用5个控件.

.net c# user-interface winforms

1
推荐指数
2
解决办法
177
查看次数

从静态方法调用后代虚方法

首先让我们建立这个.

我有

public abstract class Foo
{
  public static void StaticMethod()
  {
  }
}
public class Bar : Foo
{
}
Run Code Online (Sandbox Code Playgroud)

打电话有效吗?

Bar.StaticMethod();
Run Code Online (Sandbox Code Playgroud)

???

如果是这样,让我们​​展开前面的例子:

public abstract class Foo
{
  public static void StaticMethod()
  {
  }
  public abstract void VirtualMethod();
}
public class Bar : Foo
{
  public override void VirtualMethod()
  {
     Trace.WriteLine("virtual from static!!!!");
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该如何在基类中构造StaticMethod,以便从派生类中使用VirtualMethod?我今天的咖啡因似乎太少/太多了,这里没有任何想法.

嗯,我知道我不能从静态方法调用实例方法.所以问题就出现了:

我可以从基类的静态方法创建派生类的实例.使用类似的东西:

  public static void StaticMethod()
  {
    derived d=new derived();
    d.VirtualMethod();
  }
Run Code Online (Sandbox Code Playgroud)

为了说明的目的,我发明了新的关键字.

顺便说一句,我会赞成基于非反思的解决方案!

c# inheritance static-methods virtual-functions

1
推荐指数
1
解决办法
1080
查看次数

C++在二叉树中查找最大数字

二进制数字树,具有节点结构

type def numbernode
{
    unsigned value;
    numbernode * left;
    numbernode * right;
}
Run Code Online (Sandbox Code Playgroud)

如果树不为空,则在最大(numbernode*树)中写入函数的外部指针(到根节点)将返回树中的最大数字.如果树为空,则函数应返回-1.

这是一个测试的练习题,我花了好几个小时试图搞清楚,我需要一些代码帮助!!

c++ binary-tree

1
推荐指数
2
解决办法
1万
查看次数

睡觉(10)什么都不做?

我的网络服务有一个奇怪的情况.

这是一个简单的 - 它创建一个不断运行的线程,在后台进行一些磁盘检查,对于它执行的每个File.Exists,它进入Sleep(10),因此它不会占用所有的CPU核心.

这一切都很好,直到我从RDP登录.当我这样做时,这个线程会飙升并消耗尽可能多的东西.

在这里,看看......

我有两个核心,我的前台应用程序使用大约18%的CPU(在NOW-meter上显示了whis).左侧是没有人登录时的CPU使用情况.

到底是怎么回事?还有更多 - 在这种情况下如何适当地限制线程?

在此输入图像描述

我的代码片段产生了问题:

foreach (string fi in files)
{
    if (_shouldStop)
    {
        break;
    }
    lock (_workItems)
    {
        StatusString = string.Format("Examining file Dir={0}\nmask={1}\nfile={2}\nqueue={3}",
            root, mask, fi, _workItems.Count);
    }
    lock (_workItems)
    {
        if (!_workItems.Contains(fi))
        {
            if (!File.Exists(TargetForFile(fi + ".hash")))
            {
                StatusString = string.Format("Adding file Dir={0}\nmask={1}\nfile={2}\nqueue={3}",
                root, mask, fi, _workItems.Count);
                _workItems.Add(fi);
            }
        }
    }
    Thread.Sleep(10);
}
Run Code Online (Sandbox Code Playgroud)

小更新:

Sleep(1000)当代码作为Windows服务运行并且没有人连接到机器时,即使没有.我正式宣布它为WTF.

.net multithreading web-services remote-desktop

1
推荐指数
1
解决办法
132
查看次数

从byte []到byte*的更好方法

有没有更好的办法?请注意,我没有使用,fixed因为我需要扫描缓冲区数据.

GCHandle pinned1 = GCHandle.Alloc(Pic1, GCHandleType.Pinned);
IntPtr ptr1 = pinned1.AddrOfPinnedObject();
byte* p1 = (byte*)ptr1.ToPointer();
//...
//...
//...
byte a=*p1;
p1++;
//...
//...
pinned1.Free();
Run Code Online (Sandbox Code Playgroud)

.net c# optimization unsafe

0
推荐指数
1
解决办法
162
查看次数

另一个进程文件句柄上的SetFilePointer()失败

我正在为第三方不可触及的控制台可执行文件制作GUI.此可执行文件读取输入文件,处理数据并生成输出文件.由于这个过程需要很长时间,我需要监控进度.

我想要做的是找到控制台可执行进程id(完成),进程id检索进程打开的文件列表(完成),然后,一旦识别出输入文件并且它的句柄被检索(完成) ,我想调用SetFilePointer(handle,0,currentPosition),因此它告诉我已经读取了多少文件.然后,(read/totalSize)将为我提供该过程的进度.

问题是调用SetFilePointer()总是返回0xFFFFFFFF(失败)而GetLastError()返回6(无效句柄).有任何想法吗?

先感谢您.

c# windows 64-bit winapi

0
推荐指数
1
解决办法
353
查看次数

匿名方法不起作用

ComboBoxEdit encoderCombo =
{
   if (slot==1) return cmbEncoder1; 
   else if (slot==2) return cmbEncoder2; 
   else if (slot==3) return cmbEncoder3; 
   else return cmbEncoder4;
};
Run Code Online (Sandbox Code Playgroud)

c#

-1
推荐指数
1
解决办法
159
查看次数