小编mso*_*oft的帖子

SerialPort.GetPortNames()返回错误的端口名称

虽然c#不是我的主要编程语言,但我现在正在维护这样一个程序几年.此程序连接到串行端口上的设备,从Windows XP到8.1.一个特定的"功能"是它使用.NET Framework 2.0.

有些用户升级到Windows 10,我们抱怨程序无法检测/打开设备的COM端口.我们已在我们自己的测试系统上确认了这一点,并安装了干净的Win10

事实证明,函数SerialPort.GetPortNames()返回错误的端口名称,并在端口名称后添加"奇怪"字符.例如:

  • COM3吀
  • COM3䡢
  • COM3゠

等等.当我刷新列表时,每次在数字后面显示另一个字符(或两个).测试代码非常简单:

  string[] portNames = System.IO.Ports.SerialPort.GetPortNames();
  log("Available ports:");
  foreach (string PortAvailable in portNames)
  {
    log(PortAvailable);
  }
Run Code Online (Sandbox Code Playgroud)

日志函数会在窗体上向标准TextBox添加一行:

  txtLog.Text += Msg + Environment.NewLine;
Run Code Online (Sandbox Code Playgroud)

这适用于所有其他Windows版本.我检查了注册表,所有看起来都很好.有没有人对此有所了解?

我怀疑.NET Framework 2.0不再100%兼容,虽然您可以在Windows功能中启用它,但似乎程序本身运行正常(除了我的串口问题).我有点害怕升级到更新的.NET,更不用说我们用Visual Studio 2008 for c#(max = .NET 3.5).请注意,程序仍然需要在Windows XP上运行(POS版本仍由Microsoft维护).

补充:我已经将测试程序"升级"为.NET 3.5,并且仍然存在完全相同的问题.下一步是安装一个新的VisualStudio(它现在似乎是免费的?我应该检查Studio中的隐私设置吗?;-).

增加2:安装了VisualStudio 2015,并使用不同的.NET框架版本进行了多次构建.v2.0和3.5仍然添加了奇怪的字符.但是在v4.0及以上这个问题似乎已经解决了!现在,为原始程序编译并为更新的Framework工作.但是我觉得这个问题真的很奇怪,并且预计会有更多.NET功能和更多程序.

c# .net-2.0 windows-10

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

从C++调用JavaScript函数

我有一个CDHTMLDialog,我有2个HTML页面和一个.js文件,有一些相当简单的功能.

我希望能够从我的程序中调用一个JS函数,并使用它传递一个简单的数据类型.例如MyFunc(int).什么都不需要退货.

我很感激任何有关我如何做到这一点的指导,

谢谢.

编辑:感谢CR的答案,以及其他提交了这些想法的人.

有点像这样的东西最终起作用(为了清晰起见剥离了一点错误处理):

void callJavaScriptFunc(int Fruit)
{
    HRESULT hRes;
    CString FuncStr;
    CString LangStr = "javascript";
    VARIANT vEmpty = {0};

    CComPtr<IHTMLDocument2> HTML2Doc;
    CComPtr<IHTMLWindow2> HTML2Wind;

    hRes = GetDHtmlDocument(&HTML2Doc);
    hRes = HTML2Doc->get_parentWindow(&HTML2Wind);

    if( Fruit > 0 ) 
    {
        FuncStr = "myFunc(808)";  // Javascript parameters can be used
        hRes = HTML2Wind->execScript(FuncStr.AllocSysString(), LangStr.AllocSysString(), &vEmpty);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript c++ mfc

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

标签 统计

.net-2.0 ×1

c# ×1

c++ ×1

javascript ×1

mfc ×1

windows-10 ×1