小编Oha*_*esh的帖子

如何查找本机DLL文件是否编译为x64或x86?

我想确定本机程序集是否从托管代码应用程序(C#)编译为x64或x86 .

我认为它必须在PE头中的某处,因为OS加载器需要知道这些信息,但我找不到它.当然我更喜欢在托管代码中执行它,但如果有必要,我可以使用本机C++.

.net c# 64-bit winapi x86-64

127
推荐指数
7
解决办法
10万
查看次数

rails sqlite适配器错误

我正在按照rails教程中的说明操作,并在尝试使用scaffold命令时遇到困难.

运行时:

rails generate scaffold User name:string email:string  
Run Code Online (Sandbox Code Playgroud)

我收到错误:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError)
Run Code Online (Sandbox Code Playgroud)

运行:

gem install activerecord-sqlite3-adapter
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

ERROR:  Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter
Run Code Online (Sandbox Code Playgroud)

我的Gemfile看起来像这样:

source 'http://rubygems.org'
gem 'rails', '3.1.0'  
gem 'sqlite3', '1.3.3'  
...
Run Code Online (Sandbox Code Playgroud)

我在Windows 7 x64操作系统上运行.

有任何想法吗?

ruby sqlite ruby-on-rails

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

卸载完成后Wix打开网页

我正在使用Wix3.我需要在用户卸载产品时打开网页.
有什么想法可以做到吗?

谢谢.

windows-installer wix wix3

14
推荐指数
2
解决办法
4765
查看次数

pthread - 如何在不调用join的情况下开始运行新线程?

我想从主线程开始一个新线程.我不能使用join,因为我不想等待线程退出而不是继续执行.
基本上我需要的是像pthread_start(...),但是找不到它.

编辑:
因为建议create_thread的所有答案应该启动线程问题是在下面的简单代码中它不起作用.以下程序的输出是"主线程".看起来子线程从未执行过.知道我错了吗?
在Fedora 14 GCC 4.5.1版上编译并运行

void *thread_proc(void* x)
{
   printf ("sub thread.\n");
   pthread_exit(NULL);
}


int main()
{
    pthread_t t1;
    int res = pthread_create(&t1, NULL, thread_proc, NULL);
    if (res)
    {
        printf ("error %d\n", res);
    }

    printf("main thread\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ linux multithreading pthreads

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

假设路径C:\ WINDOWS\system32始终存在是否安全?

在win 2000或更高版本(任何语言)的操作系统上,我可以假设此路径将始终存在吗?例如,我知道在某些语言的win xp中,"Program Files"目录具有不同的名称.那么System32文件夹是真的吗?

谢谢.辖.

windows operating-system

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

.NET有没有办法获得父线程ID?

假设主线程正在生成一个新线程t1,我在t1上运行的代码如何找到主线程的线程id(使用c#)?

编辑:
我不控制新线程的创建.所以我不能将任何参数传递给线程.

谢谢.

.net c# multithreading

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

有没有办法抑制c ++名称修改?

我有一个用C++编写的DLL,我想压缩一些导出方法的名称.这些方法是全局的,不是任何类的成员.有没有办法实现这个目标?

顺便说一句:我正在使用VS2008.

c++ winapi name-mangling visual-studio

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

有没有办法在启动的每个新进程上从 Windows 获取事件?

每次操作系统启动新进程时,我都想收到通知。
请注意,我需要在本机代码中做到这一点(我知道它可以使用 System.Management 成员在托管代码中完成)。
如果有办法在进程开始运行之前获得它,则额外加分:)(即在其初始化期间)

谢谢。

c++ windows winapi native process

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

在Linux x64上与x86共享库链接

我试图在x64 Ubuntu 11.04 Natty Narwhal上链接x86共享库,但是我得到以下消息:

/usr/bin/ld: skipping incompatible ./bin/libshared.so when searching for -lshared
/usr/bin/ld: cannot find -lshared
Run Code Online (Sandbox Code Playgroud)

一些细节:
共享库名称是libshared.so
共享库是在x86 OS上构建的.
我已经安装了lib32stdc ++ 6.
makefile看起来像这样:

test: main.o
    g++ -mi386linux -L./bin -lshared main.o -o test

main.o: main.cpp
    g++ -m32 -c main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:将-mi386linux标志更改为-m32后,我收到此错误:

/usr/bin/ld: cannot find -lshared  
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

运行locate我找到libstdc ++.所以在以下地方:

/usr/lib/x86_64-linux-gnu/libstdc++.so.6  
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.14  
/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libstdc++.so  
/usr/lib32/libstdc++.so.6 …
Run Code Online (Sandbox Code Playgroud)

linux 64-bit linker x86-64

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

在MFC中,为什么我需要创建CWinApp的全局实例?

为什么在main函数启动之前应该调用派生的CWinApp的构造函数?
为什么不能这样:

int WinMain()
{
   CMainFrame* pMainFrame = new CMainFrame;
   // etc ...
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找迫使这种行为的技术原因.
编辑:
更清楚 - 如果我在没有MFC的情况下使用win32 API,主窗口是在WinMain中创建的,那有什么区别?

c++ windows user-interface mfc

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