小编Mic*_*zyk的帖子

在代码优化期间,C++ 11编译器能否将局部变量转换为右值?

有时将复杂或长表达式分成多个步骤是明智的(例如,第二个版本不是更清楚,但它只是一个例子):

return object1(object2(object3(x)));
Run Code Online (Sandbox Code Playgroud)

可以写成:

object3 a(x);
object2 b(a);
object1 c(b);
return c;
Run Code Online (Sandbox Code Playgroud)

假设所有3个类都实现了以rvalue作为参数的构造函数,第一个版本可能更快,因为临时对象被传递并可以移动.我假设在第二个版本中,局部变量被认为是左值.但是如果以后没有使用变量,那么C++ 11编译器是否会优化代码,因此变量被认为是rvalues,两个版本的工作方式完全相同?我最感兴趣的是Visual Studio 2013的C++编译器,但我也很高兴知道GCC编译器在这个问题上的行为.

谢谢,米哈尔

c++ compiler-optimization rvalue-reference visual-c++ c++11

26
推荐指数
4
解决办法
2092
查看次数

如何在C++源代码,DLL或VC++编译器创建的任何文件中查找所有全局变量?

我正在使我的应用程序线程安全.其中一个步骤是同步访问或消除全局变量的使用.我正在使用Visual Studio.我找不到任何在我的代码库中查找所有全局变量的好方法.创建一个好的文本搜索模式是不可能的,我找不到任何有用的工具.你们知道有什么好办法吗?它可以是源代码分析工具或二进制文件分析器.

c++ multithreading thread-safety visual-studio visual-c++

22
推荐指数
3
解决办法
7994
查看次数

在Excel VBA中调用没有COM互操作管理权限的regasm

此处描述了在没有管理员权限的情况下调用regasm的解决方法:

COM Interop没有regasm

我正在尝试创建一个COM库,我的用户可以在没有管理员权限的情况下从Excel VBA部署和使用它.我喜欢regasm解决方法,因为似乎人们在使用Excel VBA中的免注册COM对象方面没有太大成功.我也希望早期绑定,以便我的用户可以从语法完成中受益.

但是,上述问题中接受的答案并未描述将汇编dll放在用户计算机上的位置.管理员权限是在GAC中安装程序集所必需的,所以我想知道在哪里可以放置dll文件.我假设应用程序的目录正在搜索任何引用的dll,但我不能将我的dll放在Excel的目录中而没有管理员权限.是否可以使用Excel客户端的变通方法?有没有其他方法从VBA调用COM对象而不需要管理员权限来首先部署它们?

com vba com-interop regasm excel-vba

11
推荐指数
2
解决办法
4231
查看次数

防止HTML表单操作被更改

我的页面上有一个表单,用户可以在其中输入信用卡数据.是否有可能在HTML中将表单的操作标记为常量以防止恶意JavaScript更改表单的action属性?我可以想象一个XSS攻击,它改变了表单URL,使用户将他们的秘密数据发布到攻击者的站点.

可能吗?或者,Web浏览器中是否存在防止这类攻击发生的不同功能?

html javascript forms xss action

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

是否可以使用Apple Store分发未完成的iOS应用程序以进行封闭式Beta测试?

我们想使用App Store对我们的应用程序进行一些封闭式测试.

我们知道ad-hoc方式,但它需要预先收集测试人员的UDID并嵌入到配置文件中,这并不理想,因为我们想避免向100个测试人员询问他们的UDID.

另一种方法是使用不需要收集和存储UDID的企业分发,但让我们谈谈另一种可能性......

用户需要在应用启动时登录.无法从应用程序创建用户帐户,因此我们考虑在服务器上创建一些beta-tester帐户,将应用程序的beta版本提交到Apple Store,然后通过电子邮件将凭据发送给beta测试人员.

唯一的问题是,向Apple Store提交未完成的应用程序是否是推荐的做法.提交后,所有iOS用户都可以下载该应用程序,但只有beta测试人员才能登录.它还有一个额外的优势,就是更早了解Apple的反馈,因此任何问题都可以提前解决.你认为Apple会批准一个未完成的应用吗?

此外,是否可以禁用提交给Apple Store的应用程序的应用程序评论?我们不希望在测试期间收到用户的错误评论......

谢谢,米哈尔

beta app-store ios

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

Mysql SELECT FOR UPDATE - 奇怪的问题

我有一个奇怪的问题(至少对我来说:))与MySQL的锁定工具.

我有一张桌子:

create table `test` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,  
  PRIMARY KEY (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

有了这些数据:

+ ---- +
| id |
+ ---- +
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 10 |
| 11 |
| 12 |
+ ---- +

现在我有2个客户端在开头执行这些命令:

set autocommit = 0;
设置会话事务隔离级别可序列化;
开始;

现在最有趣的部分.第一个客户端执行此查询:(意图插入id等于9的行)

SELECT*from test where id = 9 FOR UPDATE;
空集(0.00秒)

然后第二个客户端做同样的事情:

SELECT*from test where …

mysql locking blocking

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

WPF中不规则的PNG按钮的单击事件

在WPF中我需要一个不规则形状的按钮.我是这样用XAML做的:

<Button Name="toggleButton" Click="toggleButton_Click" Canvas.Left="177" Canvas.Top="0">
  <Button.Template>
    <ControlTemplate>
      <Image Source="ball.png" />
    </ControlTemplate>
  </Button.Template>
</Button>
Run Code Online (Sandbox Code Playgroud)

我的ball.png图像是一张PNG图像,周围有一个透明区域的球.该按钮显示正确,但即使我克隆图像的透明部分,也会执行Click事件处理程序.

有没有办法使用透明PNG创建不规则按钮?

谢谢,米哈尔

.net c# wpf wpf-controls

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

在其他线程创建之前初始化C#内存模型和非易失性变量

我有一个与C#内存模型和线程有关的问题.如果没有volatile关键字,我不确定以下代码是否正确.

public class A {
  private int variableA = 0;

  public A() {

    variableA = 1;

    Thread B = new Thread(new ThreadStart(() => printA())).Start();
  }

  private void printA() {
    System.Console.WriteLine(variableA);
  }
}
Run Code Online (Sandbox Code Playgroud)

我担心的是,如果保证线程B在不使用volatile的情况下看到变量A值为1 ?在主线程中,我只在构造函数中为variableA赋值1.之后我没有触及变量A,它只在线程B中使用,因此可能不需要锁定.

但是,是否保证主线程将刷新其缓存并将variableA内容写入主内存,因此第二个线程可以读取新分配的值?

另外,是否保证第二个线程将从主存中读取变量A的内容?可能会发生一些编译器优化,并且线程B可以从缓存而不是主内存中读取变量A内容吗?当指令的顺序改变时,可能会发生这种情况.

当然,将volatile添加到variableA声明将使代码正确.但是,它是否必要?我问,因为我在构造函数中编写了一些非易失性变量初始化的代码,稍后某些Timer线程使用这些变量,我不确定它是否完全正确.

Java中的相同代码怎么样?

谢谢,米哈尔

c# java multithreading synchronization volatile

6
推荐指数
2
解决办法
638
查看次数

SabreDAV for .NET?

是否有类似于SabreDAV的CardDAV/CalDAV服务器框架可用于.NET?

我有一个用C#编写的WCF REST服务,我想知道使用CalDAV和CardDAV协议公开我的日历和联系人数据有多难.

到目前为止,我只找到了SabreDAV.它看起来很棒,但它是一个PHP框架,所以我必须维护一个全新的代码库.

是不是有.Net的SabreDAV替代品?

谢谢,米哈尔

.net wcf dav webdav caldav

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

我的App Store应用程序的旧版本安装在用户的iOS设备上

我们发布了一个有严重错误的应用程序更新 - 当用户尝试登录时,它基本上崩溃了.我们在2-3小时后将应用从销售中删除,并在3天后发布了热修复更新.用户被Apple通知了新版本,但是当他们更新应用程序时,其中一些仍然有旧版的错误版本.再次卸载和安装应用程序没有帮助.它只发生在一些用户身上.

该修复程序是一个小更新 - 我们没有更改目标iOS版本.

我在互联网上读到,可能需要24小时才能将更新传播到所有服务器,但几天后用户仍在接收旧应用程序.

你们有没有遇到与Apple App Store类似的问题?我们能做些什么吗?我们计划发布一个重大更新,我们希望确保当用户收到有关更新的通知时,他们将获得它而不是旧版本.

app-store ios

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