问题列表 - 第2342页

提升Asio serial_port - 需要帮助io

所以我一直在尝试学习使用RS232与串口设备通信的boost :: asio.文档记录稀疏,示例不存在.无法弄清楚如何与设备进行通信.设备无法发送数据,所以我需要做的就是写,但其他项目需要实际的来回通信,所以对此有所帮助.到目前为止,我的代码如下.

#include <boost/asio/serial_port.hpp>
using namespace::boost::asio;

int main()
{
    io_service io;
    serial_port port( io, "COM3" );
    port.set_option( serial_port_base::baud_rate( 19200 ) );

    unsigned char commands[4] = { 1, 128, 240, 0 };

    // write the commands to the device

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

简而言之:需要有关serial_port的io部分的帮助.

c++ boost

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

如何创建OLE控件?

没有讨论为什么我需要OLE ..我需要将一个托管的C++自定义控件嵌入到MS Word 2007中(2003年也会很好).

所以问题是如何使这个托管(.net 3.5)控制OLE兼容?

我似乎需要做一些类似于实现接口的事情.但是最新的教程很难找到.

我已经阅读了关于OLE的维基百科文章.我可以谷歌的所有信息都是古老的(1994)和/或VB中心(4.0-6.0).任何对当前时间有意义的东西......链接/书籍请发布.

谢谢阅读..

ole ms-word ms-office

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

防御性编码实践

自从我第一次写作以来

if ($a = 5) {
   #  do something with $a, e.g.
   print "$a";
}
Run Code Online (Sandbox Code Playgroud)

并经历了正常的令人费解的会议

  • 为什么结果总是如此
  • 为什么$ a总是5

直到我意识到,我已经分配了5到$ a,而不是进行比较.

所以我决定把上面那种情况写成

 if (5 == $a)
Run Code Online (Sandbox Code Playgroud)

换一种说法:

如果您忘记添加第二个"="符号,则始终将常量值放在比较运算符的左侧,从而导致编译错误.

我倾向于称这种防御性编码,并倾向于认为它是防御性编程的表亲,而不是算法规模,而是关键词.

您开发了哪些防御性编码实践?


一周后:

对所有回答或可能在将来添加其他答案的人表示"谢谢".

不幸的是(或者说幸运的是!)没有一个正确的答案.为此,我的问题是广泛的,要求更多的意见或经验的学习,而不是事实.

coding-style

16
推荐指数
9
解决办法
3477
查看次数

parameterizedThreadstart,Threadstart和Thread之间的区别

parameterizedThreadstart,Threadstart和Thread之间有什么区别?

.net multithreading

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

Java类可访问性

与我的另一个问题略有关联:以下内容有何区别:

private class Joe
protected class Joe
public class Joe
class Joe
Run Code Online (Sandbox Code Playgroud)

再一次,最后两个之间的差异是我最感兴趣的.

java accessibility class

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

SQL Server - 如何插入记录并确保它是唯一的

我试图找出将记录插入单个表的最佳方法,但前提是该项目尚不存在.在这种情况下,KEY是NVARCHAR(400)字段.对于此示例,我们假设它是牛津英语词典中单词的名称/在此处插入您的fav词典.另外,我猜我需要将Word字段作为主键.(该表也将具有唯一标识符PK).

所以...我可能会得到这些我需要添加到表格中的单词...

例如.

  • 酒吧
  • PewPew
  • 等等...

所以传统上,我会尝试以下(伪代码)

SELECT WordID FROM Words WHERE Word = @Word
IF WordID IS NULL OR WordID <= 0
    INSERT INTO Words VALUES (@Word)
Run Code Online (Sandbox Code Playgroud)

即.如果该单词不存在,则插入它.

现在..我担心的问题是我们得到了大量的命中..所以有可能这个词可以从SELECT和INSERT之间的另一个进程插入...这会引发一个约束错误?(即比赛条件).

然后我想我可能会做以下事情......

INSERT INTO Words (Word)
SELECT @Word
WHERE NOT EXISTS (SELECT WordID FROM Words WHERE Word = @Word)
Run Code Online (Sandbox Code Playgroud)

基本上,当它不存在时插入一个单词.

除了错误的语法之外,我不确定这是坏还是好因为它如何锁定表(如果它确实)并且不是表上的表现,它会获得大量读取和大量写入.

那么 - 你的Sql大师怎么想/做什么?

我希望有一个简单的插入和"捕获",任何错误抛出.

sql-server insert unique

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

将SDF数据库转换为MDF

我有这个SQL Server CE数据库,我想将其转换为SQL Server 2008数据库,因为我希望它可以通过网络访问.我使用的是SQL Server 2008 Express和VB9.

任何的想法?

vb.net sql-server sql-server-ce

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

SQL(MySQL):匹配字符串中任何单词的首字母?

(注意:这是针对MySQL的SQL,而不是SQL Server.)

我有一个数据库列,其值为"abc def GHI JKL".我想编写一个WHERE子句,其中包含对以特定字母开头的任何单词的不区分大小写的测试.例如,该示例将对字母a,c,g,j测试为true,因为从每个字母开始都有一个"单词".该应用程序用于搜索,该搜索提供查找仅包含以指定字母开头的单词的记录.另请注意,此表没有全文索引.

mysql sql

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

如何找到我的进程在Linux中打开的文件句柄?

当我们在Unix中执行fork时,会继承打开的文件句柄,如果我们不需要使用它们,我们应该关闭它们.但是,当我们使用库时,可能会打开文件句柄,我们无法访问该句柄.我们如何检查这些打开的文件句柄?

c c++ linux file-io

11
推荐指数
4
解决办法
3万
查看次数

复制文件时如何防止此System.IO.IOException?

当我运行以下代码来测试复制目录时,我在调用fileInfo.CopyTo方法时得到一个System.IO.IOException.错误消息是:"进程无法访问文件'C:\ CopyDirectoryTest1\temp.txt',因为它正被另一个进程使用."

似乎在file1("C:\ CopyDirectoryTest1\temp.txt")上有一个锁,它在错误发生的地方创建了几行,但我不知道如何释放它.有任何想法吗?

using System;
using System.IO;

namespace TempConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string folder1 = @"C:\CopyDirectoryTest1";
            string folder2 = @"C:\CopyDirectoryTest2";
            string file1 = Path.Combine(folder1, "temp.txt");

            if (Directory.Exists(folder1))
                Directory.Delete(folder1, true);
            if (Directory.Exists(folder2))
                Directory.Delete(folder2, true);

            Directory.CreateDirectory(folder1);
            Directory.CreateDirectory(folder2);
            File.Create(file1);

            DirectoryInfo folder1Info = new DirectoryInfo(folder1);
            DirectoryInfo folder2Info = new DirectoryInfo(folder2);

            foreach (FileInfo fileInfo in folder1Info.GetFiles())
            {
                string fileName = fileInfo.Name;
                string targetFilePath = Path.Combine(folder2Info.FullName, fileName);
                fileInfo.CopyTo(targetFilePath, true);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# io ioexception

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