小编Wer*_*nze的帖子

如何用ClickOnce提供更新说明?

我们有一个应用程序,我编写了很多年,现在我通过ClickOnce推送更新.该应用程序位于我们的主文件服务器上.但是每当我推出更新时,我都会被问到我改变了什么!有没有办法用ClickOnce提供个性化的更新说明,这将是用户友好的?例如,当用户启动他们的应用程序时,ClickOnce会询问"新版本是否可用.您要更新吗?",在下面我可以描述我已更新的内容?或者ClickOnce是不可能的?

c# clickonce updates

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

删除Windows WINAPI上的阴影效果

有没有办法可以删除程序中窗口上的阴影效果?我在VC++,平台:Windows 10下使用Win32 API.

我知道我可以使用SystemParametersInfo()SPI_SETDROPSHADOW来设置它FALSE但我想知道是否有一个选项只影响单个窗口,因为这会影响所有窗口?

这显示了要删除的阴影(没有使用CS_DROPSHADOW):
CS_DROPSHADOW未使用

这显示了CS_DROPSHADOW使用时可见的阴影:
CS_DROPSHADOW使用

SystemParametersInfo()SPI_SETDROPSHADOW关闭两个影子,但似乎没有成为一个窗口样式或窗口类样式禁用时所绘制的阴影CS_DROPSHADOW不被使用.

c++ windows winapi shadow

8
推荐指数
0
解决办法
772
查看次数

为什么memory_order_relaxed的性能与memory_order_seq_cst相同

我创建了一个简单的测试来检查怎么std::memory_order_relaxed快于std::memory_order_seq_cst对价值atomic<int>增量.然而,两种情况的表现都相同.
我的编译器:gcc版本7.3.0(Ubuntu 7.3.0-27ubuntu1~18.04)
构建参数:g ++ -m64 -O3 main.cpp -std = c ++ 17 -lpthread
CPU:Intel(R)Core(TM)i7- 2670QM CPU @ 2.20GHz,4核,每核2线程
测试代码:

#include <vector>
#include <iostream>
#include <thread>
#include <atomic>
#include <chrono>
#include <functional>

std::atomic<int> cnt = {0};

void run_test_order_relaxed()
{
    std::vector<std::thread> v;
    for (int n = 0; n < 4; ++n) {
        v.emplace_back([]() {
            for (int n = 0; n < 30000000; ++n) {
                cnt.fetch_add(1, std::memory_order_relaxed);
            }
        });
    }
    std::cout << "rel: " << cnt.load(std::memory_order_relaxed); …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

在回收站中列出文件

我想从命令行列出Vista中回收站中的文件.到目前为止我有这个..

dir C:\$Recycle.Bin /s /b >> recyclebin.txt
Run Code Online (Sandbox Code Playgroud)

这没关系,我得到的输出是这个..

C:\ $ Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$ I2H8K48.zip
C:\ $ Recycle.bin\S-1-5-21-931442927-344369455-2477061601- 1000\$ IE94UAG.exe
C:\ $ Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$ IR4P99W.rar
C:\ $ Recycle.bin\S-1-5-21- 931442927-344369455-2477061601-1000\$ R2H8K48.zip
C:\ $ Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$ RE94UAG.exe
C:\ $ Recycle.bin\S- 1-5-21-931442927-344369455-2477061601-1000\$ RR4P99W.rar

我的回收站中只有3个文件名为auto-it-v3-setup.exe,fcleanerportable.rar和Reinstall.rar.

反正有没有把这些名字放到一个txt文件列表中,而不是上面那些代码命名的文件?

recycle-bin command-line cmd windows-vista

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

有一个libpthread.so连接Ubuntu上的麻烦

我从这个网站http://mnbayazit.com/406/bayazit下载了源代码

这个项目有一些依赖:

库:FTGL(用于字体),FreeType2(FTGL需要),GLFW(用于Windows和键盘输入),OpenGL.软件:CMake(如果它不构建)但我遇到了问题.

安装指南看起来像

构建和运行:

cmake .
make
./conv
Run Code Online (Sandbox Code Playgroud)

而我正在努力建立它.

$ cmake .  
Run Code Online (Sandbox Code Playgroud)

很好,但是当我想要的时候

$ make
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Linking CXX executable conv
/usr/bin/ld: /usr/local/lib/libglfw.a(x11_init.o): undefined reference to symbol 'pthread_kill@@GLIBC_2.0'
/usr/bin/ld: note: 'pthread_kill@@GLIBC_2.0' is defined in DSO /lib/i386-linux-gnu/libpthread.so.0 so try adding it to the linker command line
/lib/i386-linux-gnu/libpthread.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [conv] Error 1
make[1]: *** [CMakeFiles/conv.dir/all] Error 2
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了这个问题,并尝试通过更改来更改CMakeLists.txt

SET(CMAKE_BUILD_TYPE distribution)
SET(CMAKE_CXX_FLAGS_DISTRIBUTION "-O3") …
Run Code Online (Sandbox Code Playgroud)

ubuntu makefile undefined glfw

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

使用XSL FO文件使用iText布局PDF

我需要将图形(Java2D对象)和一些表转换为PDF.我还需要PDF是交互式的.牢记这些要求我得出结论,我应该使用iText来达到这个目的.现在我还需要提供使用XSL FO布局文件的功能.我知道Apache FOP提供了使用XSL FO呈现PDF的功能,但它不支持添加注释(如注释,链接).

有没有办法用iText做这个(使用XSL布局)?
即使有一种方法可以使用这两个库并达到目的,它也会有所帮助.

java pdf xslt itext apache-fop

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

Msado60_Backcompat在CCommand :: CreateParameter中崩溃

我正在开发Windows 7 64位SP1上的ADO应用程序(32位)(安装了所有更新):该应用程序必须在Win XP上运行.根据http://support.microsoft.com/kb/2517589/en-us我正在使用msado60_backcompat.直到最近才有效,但现在它崩溃了.

我的代码(片段):

_CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection = dbconn;
cmd->CommandText = _T("SELECT [si] FROM [TTable] WHERE [TTable].[ti1]=?");
cmd->Parameters->Append(cmd->CreateParameter(L"@ti1", adTinyInt, adParamInput, 1, 7));
Run Code Online (Sandbox Code Playgroud)

CreateParameter在msado60_backcompat中实现:

inline _ParameterPtr Command15::CreateParameter ( _bstr_t Name, enum DataTypeEnum Type, enum ParameterDirectionEnum Direction, ADO_LONGPTR Size, const _variant_t & Value )
{
  struct _Parameter * _result = 0;
  HRESULT _hr = raw_CreateParameter(Name, Type, Direction, Size, Value, &_result);
  if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
  return _ParameterPtr(_result, false);
}
Run Code Online (Sandbox Code Playgroud)

raw_CreateParameter()调用msado15.dll到CCommand :: CreateParameter.偏移量0x34f(函数内部的偏移量)发生崩溃:

adosqlbugcheck.exe中0x655ed5a6(msado15.dll)的第一次机会异常:0xC0000005:访问冲突写入位置0xcccccccc.
adosqlbugcheck.exe中0x655ed5a6(msado15.dll)的未处理异常:0xC0000005:访问冲突写入位置0xcccccccc.

Msado60_Backcompat.tlb:73728字节,29.4.2011
msado15.dll:6.1.7601.17514,10199904 字节,21.11.2010

如果我使用msado15.dll,则不会发生此错误.

有人可以重现错误吗?有解决方案吗?

ado

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

通过命令行发送 Ctrl+Z 到串口

我正在尝试使用 ECHO 或类似方法通过命令行将以下内容发送到 COM1 串口(我也尝试下载一个名为 serialsend 的小程序,但我坚持如何发送等效的CTRL+ Z。这是发送一个通过西门子 TC35 GAM 模块发送 SMS 消息。作为测试,我可以通过超级终端执行此操作,并且运行良好,但我无法弄清楚如何在末尾发送CTRL+Z以确认消息的正确性。

这就是我所拥有的:

AT

AT+CMGF=1

AT+CMSG="+xxxxxxxxxxx"

HELLO
Run Code Online (Sandbox Code Playgroud)

现在,在 Hello 之后,这是我要发送的消息,我必须发送CTRL+ Z。但不知道怎么做,我试过这个:

AT

AT+CMGF=1

AT+CMSG="+xxxxxxxxxxx"

HELLO

\x1A
Run Code Online (Sandbox Code Playgroud)

正如我读到的那样,这相当于这样做,但它没有奏效。

谁能帮我这个?我找到了解决方案,但它们不是命令行,这正是我所需要的。

我也尝试过使用这种格式:

ECHO AT > COM1:
Run Code Online (Sandbox Code Playgroud)

但由于我不知道如何发送CTRL+Z我不知道它是否有效。

command-line serial-port ctrl

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

C#Outlook加载项获取选定的电子邮件

我想在Outlook 2010加载项中获取所有选定的电子邮件.我找到了这个MSDN教程,但我是C#的初学者,我不太明白这行代码:Object selObject = this.Application.ActiveExplorer().Selection[3];

我相信Selection[]像C#中被覆盖的运算符,索引器.但是,有没有办法看到它的实现?如果我浏览代码,我只看到接口但不看实现.所以我不知道Selection对象的结构.什么是真正的背后operator [].

另外,为什么所选项目从索引1开始而不是0?

c# outlook-addin

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

如何在Qt中捕获Ctrl+Plus?

我怎样才能捕获Ctrl++QWidget::keyPressEvent

这是我当前的代码(简化):

void foo::keyPressEvent(QKeyEvent *event)
{
    if (event->modifiers() == Qt::ControlModifier)
    {
        switch (event->key())
        {
        case Qt::Key_Plus:
            // do something
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

其有效,但仅适用于+键盘的字母数字部分。当我按数字键盘上的Ctrl+时+,它没有任何反应。

谢谢

c++ qt

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