小编Tam*_*lei的帖子

插入模式中缺少VIM逗号

我是VIM的初学者,我有一个奇怪的问题.我开始在终端模拟器中使用vim,但今天我转到了gVim.然后我意识到我不能在插入模式下写逗号!我试过:map ,,:imap ,都说没有找到映射.我试过:nomap ,,:inomap ,两个都没有运气.在编写命令时,我能够编写逗号,但不能在插入模式下编写.可能是什么问题?


一些细节:我正在运行一个新安装的ubuntu 9.04系统,带有英文键盘,但使用的是匈牙利版式.在按下命令模式后,在写入vim的"命令行"时,我可以在vim中编写逗号.

vim

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

作为代码执行数据?

我的客户要求我编写一个自定义加密可执行文件,以防止许可系统轻易破解.现在,我明白这是一种虚假的安全感,但尽管如此,他仍然坚持这一点.

所以,我挖掘了我对可移植可执行文件的了解,并提出了这个想法:

  • 加密可执行文件
  • 将它粘贴到加载程序可执行文件的末尾以及它的大小
  • 加载程序解密数据
  • 它将代码复制到使用具有可执行权限的VirtualAlloc分配的页面
  • 它找到了应用程序的入口点
  • 跳到那里,我们都准备好了.

跳到那里我有一个问题.我怎样才能做到这一点?如果我要设置一个函数指针,那么签名是什么?加载的可执行文件的main()函数的签名?或者我需要求助于集会吗?

我知道在加载代码后可能需要更正绝对地址.如何检查是否需要,以及如何实际执行此操作?

编辑:在Windows上工作并使用GCC进行编译.如有必要,我可以切换Microsoft编译器.

编辑2:澄清:我知道它几乎没有意义.我认为这代表任何类型的DRM.这取决于我的客户决定,尽管我警告他,但他仍然想要这个.

提前致谢.

c++ windows assembly loader

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

如何从预制构建脚本运行自定义工具?

我在 C++ 应用程序中使用协议缓冲区进行数据序列化。我想protoc在我的premake构建脚本中添加代码生成器的调用(从而确保生成的类的最新状态并避免需要在版本控制下存储生成的源代码)。

甚至他们的FAQ也有关于这个的问答,但对我来说答案很不完整。能够调用任何 lua 函数是很棒的,但是我到底把那个调用放在哪里呢?我需要在构建应用程序或单元测试之前运行 protoc 编译器。

lua build-process premake

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

如何从vimscript调用编辑器命令?

我想从标签列表中删除不需要的滚动条。我创建了这样的函数和命令:

function s:TlistWaToggle()
    normal :TlistToggle<cr> " <- this does not work
    set guioptions-=r
endfunction

command! -nargs=0 -bar TlistWaToggle call s:TlistWaToggle()
Run Code Online (Sandbox Code Playgroud)

我想将对:TlistToggle的调用与该命令一起包装,以删除右侧的滚动条(我当然具有该设置,但是它始终会重新出现,因此这是一种解决方法)。目前,我的:TlistWaToggle不执行任何操作。我该如何运作?

vim

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

当我尝试使用异常时,为什么我的代码在Qt Creator中使用-fno-exceptions进行编译?

在项目.pro文件中我指定:

QMAKE_CXXFLAGS += -fno-exceptions  
Run Code Online (Sandbox Code Playgroud)

然而,我能够在我的应用程序中抛出异常.有什么想法吗?

示例:这应该不起作用,但它可以工作

#include <QApplication>
#include <QtDebug>

int main(int c, char**v)
{
    QApplication app(c,v);
    try
    {
        throw 1;
    }
    catch(int i)
    {

    }
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

NetUserAdd()成功,但用户"隐身"

我正在使用NetUserAddAPI 创建用户.它成功返回,用户有一个User文件夹,我可以看到用户名wmic useraccount get name.但是,创建的用户在控制面板下或登录屏幕上不可见.我假设我需要将用户添加到某个组,但我不知道哪个或如何.

以下是我创建用户的方法:

USER_INFO_1 user_info;
ZeroMemory(&user_info, sizeof(user_info));
user_info.usri1_name = userName;
user_info.usri1_password = password;
user_info.usri1_priv = USER_PRIV_USER;
user_info.usri1_flags = UF_SCRIPT | UF_DONT_EXPIRE_PASSWD;

DWORD dwLevel = 1;
DWORD dwError = 0;
NET_API_STATUS nStatus = NetUserAdd(NULL, dwLevel, (LPBYTE)&user_info, &dwError);
Run Code Online (Sandbox Code Playgroud)

如何在登录屏幕上显示用户?

c++ windows winapi user-accounts

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

修改并启动Debug后,不会重建C#项目

如果我进行修改并且没有明确告诉它重建,则不会.如何恢复旧行为(如果修改了源,则在调试之前尝试重建)?

c# visual-studio-2010 visual-studio

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

Qt - 正确设计应用程序代码

我很难搜索相关主题,所以这是我的问题.我两天前开始使用Qt,因此我没有任何线索如何使其工作(在代码端).

[offtopic]这里有一些历史:起初我想过将应用程序的逻辑与其外观分开.我有一些核心类,另外一些用于GUI(显示和控制),以及它们之间的某种"桥梁",例如,将数据从具有std :: list成员的类A移动到类B:public QAbstractListView, QStringList中.但是当我不得不使用越来越多的Qt代码(HTTP请求,磁盘I/O,正则表达式)时,我放弃了.我的代码看起来像一团糟,我考虑重构我的代码.

(无论如何,将这两个东西 - 应用程序逻辑合并到Qt(子)类中是一个好主意吗?)[/ offtopic]

我遇到了另一个问题,它最终与主题中的问题有关:例如,更好(例如,Qt-way),有一个私有成员QWebPage的类和一些公共方法,插槽和信号来操作它或只是在QWebPage的子类中添加我的功能?

c++ qt

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

如何告诉premake生成使用clang的Makefile?

我想在生成Makefile(gmake工具链)时使用clang构建我的应用程序.有没有办法做到这一点?

makefile build premake

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

在DLL边界上使用单例

我有一个遗留项目,它具有像这样的单例类:

class Singleton
{
public:
    static Singleton& Instance() 
    {
        static Singleton inst;
        return inst;
    }

    void foo();
};
Run Code Online (Sandbox Code Playgroud)

该项目使用的DLL需要使用相同的类(部分源代码在托管应用程序和DLL之间共享,因此DLL可以访问Singleton)。但是,Instance(自然)为DLL返回一个不同的实例,为托管应用程序返回一个不同的实例。这显然会引起问题。

有没有一种方法可以在DLL和托管进程之间使用同一实例?(让我们假设二进制兼容性不是问题。)

c++ dll singleton

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