问题列表 - 第39238页

如何解决使用FARPROC调用GetProcAddress周围的C4191警告?

最近我尝试使用/ Wall Visual C++选项启用所有警告,发现以下代码:

typedef BOOL ( WINAPI * TIsWow64ProcessFunction )( HANDLE, BOOL* );
TIsWow64ProcessFunction isWow64ProcessFunction = reinterpret_cast<TIsWow64ProcessFunction> (
    ::GetProcAddress( kernel32DllHandle, "IsWow64Process" ) );
Run Code Online (Sandbox Code Playgroud)

产生C4191:

warning C4191: 'reinterpret_cast' : unsafe conversion from 'FARPROC' to 'TIsWow64ProcessFunction'
Calling this function through the result pointer may cause your program to fail
Run Code Online (Sandbox Code Playgroud)

如果我使用C风格的强制转换,则出现相同的警告,但现在它提到"类型转换"而不是"reinterpret_cast".

对于我调用GetProcAddress()并将其返回值转换为某个可用函数指针的任何情况,都会重复相同的警告.

我该如何处理这些警告?我是否需要对代码进行更改?

c++ winapi casting function-pointers compiler-warnings

9
推荐指数
2
解决办法
3810
查看次数

可逆的"二进制到数字"谓词

将二进制位(例如,可能是0/1的列表)以可逆方式转换为数字的最佳方法是什么.我在swi中编写了一个原生谓词,但有更好的解决方案吗?最好的祝福

prolog clpfd

9
推荐指数
2
解决办法
1672
查看次数

如何在PowerShell中逐行处理文件作为流

我正在使用一些多GB的文本文件,并希望使用PowerShell对它们进行一些流处理.这很简单,只需解析每一行并提取一些数据,然后将其存储在数据库中.

不幸的是,get-content | %{ whatever($_) }似乎在管道的这个阶段保持整个行集在内存中.它的速度也非常慢,需要花费很长时间才能完全阅读.

所以我的问题是两部分:

  1. 如何让它逐行处理流,而不是将整个事物缓存在内存中?我想避免为此目的使用几次RAM.
  2. 如何让它运行得更快?对a get-content进行迭代的PowerShell 似乎比C#脚本慢100倍.

我希望我在这里做一些愚蠢的事情,比如错过一个-LineBufferSize参数或什么......

powershell stream

87
推荐指数
3
解决办法
26万
查看次数

需要一种方法来获取msi安装程序在c#中运行时使用的版本#,而不知道用于安装的msi文件的位置

我正在开发一个从中心点自动更新程序的方案.为了帮助我,我需要一种方法来获取用于在运行时安装progarm的msi文件的版本号,因此我可以将安装的版本与服务器上的最新版本进行比较(已经解决了这部分)并决定是否不要更新.为了清楚起见,我已经有一种方法可以使用msi.dll打开msi文件并获取版本#out.问题是引导问题.如果用户第一次安装程序,我的程序如何知道在哪里找到msi文件(在客户端上)?

解决方案可以像msi一样简单,在运行时创建一个版本为#的文本文件.如果可以,我想避免查询注册表.

如果我无法弄清楚这一点,我将不得不特别注意在GUI项目和MSI安装程序中保持版本#相同,这让我很烦.

有什么想法吗?

c#-4.0

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

内部类和方法应该如何测试?

可能重复:
测试内部类

我喜欢将我的测试类放在一个单独的程序集中,这会导致测试内部类的一些问题.由于内部类和方法只在程序集内部可见,因此我的测试程序集无法看到这些类和方法.测试这些类的最有效方法是什么?我是否需要使用反射来访问我不想测试的方法?

.net c# unit-testing

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

C++如何随着TC++ PL的不同版本而改变?

(如果您不知道,"TC++ PL"代表"C++编程语言",这是由C++的发明者Bjarne Stroustrup撰写的一本书.)

我只有第三版,只是想知道C++在第一版和第二版中的表现.显然,第三版是唯一一个涵盖ISO标准C++的版本,但是在第一版发布后和第二版发布后,C++中添加了哪些主要功能?

c++

3
推荐指数
2
解决办法
145
查看次数

在自定义 Javadoc taglet 中展开内联标签

我编写了一个自定义 Javadoc taglet,它添加了一个新note标签:

 ...
 public boolean isInlineTag() { return false; }

  public String toString(Tag tag) {
      return "<pre class='note'>" + tag.text() + "</pre>";
   }
Run Code Online (Sandbox Code Playgroud)

到目前为止它可以工作,但是内联标签没有扩展。这是一个评论示例:

/**
 * @note Test note with {@link Someclass} // @link tag is NOT expanded
 * @param name - here the {@link Someclass} works // works for standard 'param' tag
 */
Run Code Online (Sandbox Code Playgroud)

内联标签{@link}未展开。但是,它对于内置paramjavadoc 标记来说效果很好。

有没有办法在自定义 Javadoc taglet 中扩展嵌套内联标签?

谢谢!

java javadoc custom-tag taglet

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

C++中的一个定义规则究竟是什么?

C++中的一个定义规则究竟是什么意思?我能找到的唯一值得信赖的事件是在C++编程语言中,第3版.编辑,第9.2.3节.除了那个规则之外,该规则是否有官方定义?

c++ definition

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

Delphi app tray图标上的气球提示会无限期地弹出

我有一个Delphi 2006应用程序,可以最小化到托盘图标,并通过托盘图标上的气球提示显示各种警报消息.

在某些情况下 - 我不知道什么时候 - 之前显示的气球提示不断弹出并且不会消失.它显示编程的时间长度,关闭,然后立即重新出现.

它始终是这个应用程序的气球提示.

如果应用程序显示另一个气球提示,那个显示编程时间,那么幻像提示将重新开始.

就好像提示卡在某个队列中并且不会被删除.没有任何人有一些灵感(我意识到这是一个长镜头......),有没有人知道如何清除气球提示?

delphi trayicon delphi-2006 hints popup-balloons

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

在java和csv文件中设置UTF-8

我正在使用此代码通过OpenCSV将波斯语单词添加到csv文件中:

String[] entries="\u0645 \u062E\u062F\u0627".split("#");
try{
    CSVWriter writer=new CSVWriter(new OutputStreamWriter(new FileOutputStream("C:\\test.csv"), "UTF-8"));

    writer.writeNext(entries);
    writer.close();
}
catch(IOException ioe){
    ioe.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

当我打开生成的csv文件时,在Excel中,它包含"ứỶờịỆ".其他程序,如notepad.exe没有此问题,但我的所有用户都使用MS Excel.

用SuperCSV替换OpenCSV并不能解决这个问题.

当我手动将波斯字符键入csv文件时,我没有任何问题.

java csv unicode utf-8 opencsv

33
推荐指数
3
解决办法
8万
查看次数