小编Ric*_*III的帖子

我可以在浏览器之外运行Google的Native Client吗?

是否可以在浏览器之外运行Google NaCl作为进程沙箱?

google-nativeclient

15
推荐指数
2
解决办法
2823
查看次数

C中的Shellcode - 这是什么意思?

我并没有真正了解这段代码的作用:

char shellcode[] = "\xbb\x00\x00\x00\x00"           
                   "\xb8\x01\x00\x00\x00"                  
                   "\xcd\x80";                  

int main()
{
    int *ret;
    ret = (int *)&ret + 2;
    (*ret) = (int)shellcode;
}
Run Code Online (Sandbox Code Playgroud)

好的,我知道:

int *ret;
Run Code Online (Sandbox Code Playgroud)

设置int的指针.和:

ret = (int *)&ret + 2;
Run Code Online (Sandbox Code Playgroud)

设置ret的地址和2个字节(我想.)

但我不知道这意味着什么:

(int *)&ret
Run Code Online (Sandbox Code Playgroud)

我知道什么&ret意思但不(int *)&ret意味着什么.此外,它是如何通过分配的值执行的shellcode shellcoderet

更新:有什么区别:

(int *)&ret  + 2
Run Code Online (Sandbox Code Playgroud)

和:

&ret + 2
Run Code Online (Sandbox Code Playgroud)

c shellcode

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

Objective-C++ 11 - 为什么我们不能将块分配给lambda?

所以,我刚刚升级到Xcode 4.4,我注意到在更改日志中:

Apple LLVM编译器支持其他C++ 11功能,包括lambdas

哪个太棒了!所以我开始编码,我找到了一些东西:

  1. Lambdas可分配给Objective-C块:

    void (^block)() = []() -> void { 
        NSLog(@"Inside Lambda called as block!");
    };
    
    block();
    
    Run Code Online (Sandbox Code Playgroud)
  2. std::function 可以持有Objective-C块:

    std::function<void(void)> func = ^{
        NSLog(@"Block inside std::function");
    };
    
    func();
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我们不能将一个Objective-C块分配给lambda:

    auto lambda = []() -> {
        NSLog(@"Lambda!");
    };
    
    lambda = ^{ // error!
        NSLog(@"Block!");
    };
    
    lambda();
    
    Run Code Online (Sandbox Code Playgroud)

为什么是这样?鉴于我们上面所看到的,这两者在语义上是否应该是等价的?

c++ lambda objective-c objective-c++ c++11

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

SLN文件中的GUID

Visual Studio解决方案文件包含每个项目条目两个GUID.我认为其中一个来自AssemblyInfo.cs

有谁知道这些来自哪里,以及它们用于什么?

.net solution visual-studio

13
推荐指数
2
解决办法
3115
查看次数

为什么我们不能将C字符串用作SEL?

所以,我一直在讨论objc-runtime(惊喜),我在这里找到了一个有趣的代码块:

const char *sel_getName(SEL sel) {
#if SUPPORT_IGNORED_SELECTOR_CONSTANT
    if ((uintptr_t)sel == kIgnore) return "<ignored selector>";
#endif
    return sel ? (const char *)sel : "<null selector>";
}
Run Code Online (Sandbox Code Playgroud)

所以,这告诉我的是SEL,在每种习惯中,a 都等同于C弦.执行包含SEL的前16个字节的十六进制转储,@selector(addObject:)提供以下内容:

61 64 64 4F 62 6A 65 63 74 3A 00 00 00 00 00 00

这等于C字符串addObject:.

话虽如此,当我使用C字符串作为选择器时,为什么这段代码会崩溃?

SEL normalSEL  = @selector(addObject:);
SEL cStringSEL = (SEL) "addObject:";

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1", @"2", nil];

[arr performSelector:normalSEL withObject:@"3"];
[arr performSelector:cStringSEL withObject:@"4"];

NSLog(@"%@", arr);
Run Code Online (Sandbox Code Playgroud)

据我所知,选择器的内容是相同的,那么为什么第二个的崩溃会出现以下错误消息?

*** …

methods objective-c objective-c-runtime selector

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

以秒为单位获取日期表示?

我正在使用一个API,它需要一个日期参数作为秒数,一个int.

我的问题是我目前存储这个时间java.util.date,我想知道是否有某种方法将java.util.date变量转换为秒,以便我可以将它放入intAPI所需的参数中?

java data-conversion java.util.date

13
推荐指数
3
解决办法
4万
查看次数

ASP.NET解决方案的典型结构?

正如标题所说,我很想知道你通常如何构建ASP.NET解决方案.

我对ASP.NET WebSite解决方案特别感兴趣,但是其他类型的信息(WebApplication,MVC)也可能很有趣.

一些具体问题:

  • 该解决方案包含的内容/数量/项目/程序集
  • 你如何命名你的类库项目
  • 你通常拥有什么名称空间
  • 你是否每个项目/程序集有多个名称空间,或者你有一个严格的1:1关系
  • 等等

谢谢

asp.net namespaces solution

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

VS2008:如何从同一解决方案中运行两个单独的项目

我有一个单独的非托管C++控制台应用程序解决方案(.sln),其中两个项目(.vcproj)都构建为.exe.我想同时运行它们(一个是客户端,一个是服务器).我如何配置我的Visual Studio,以便当我点击一个按钮,比如说F5时,按照我指定的顺序一个接一个地运行就足够聪明了?

目前,我所要做的就是将一个项目设置为"启动项目",然后按下"Ctrl + F5"来运行一个的话,我必须改变"启动项目"是另外一个,然后按下"Ctrl + F5 ".

实际上,每天做这25次是痛苦的.= p

c++ configuration solution vcproj visual-studio-2008

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

文件系统观察程序和大文件

var fsw = new FileSystemWatcher(sPath, "*.PPF");
fsw.NotifyFilter = NotifyFilters.FileName;
fsw.IncludeSubdirectories = true;
fsw.Created += FswCreated;
fsw.EnableRaisingEvents = true;

static void FswCreated(object sender, FileSystemEventArgs e)
{
  string sFile = e.FullPath;
  string[] arrLines = File.ReadAllLines(sFile);
}
Run Code Online (Sandbox Code Playgroud)

这对于大文件失败,因为编写文件时没有完成该过程.该文件是通过网络复制的,所以我不知道文件的大小.需要什么样的同步才能使其稳健?

c# io filesystemwatcher

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

为什么我的程序在打开mkfifo-ed管道时会挂起?

我使用mkfifo来创建一个命名管道.然后我使用以下程序打开它.但是,该程序挂起在"fopen"行.这里有什么问题吗?

int main(int argc, char** argv) {
char* line = "hello, world!";
FILE* fp = fopen("/tmp/myFIFO", "rw");
fprintf(fp, line);
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ mkfifo

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