标签: win64

使用cygwin,dlltool构建64位libpython27.a

我正在尝试使用cygwin在64位Win7机器上构建一个python扩展DLL(因为cygwin只运行32位进程,这实际上是交叉编译).

我自己使用dlltool从python27.dll创建了libpython27.a(例如,在这里解释),但是在链接器阶段构建失败说
skipping incompatible c:\Python27\libs/libpython27.a when searching for -lpython27
这正是这里报告的错误(那里的人最终转向MSVC编译器.. ).

更多信息:
- Active Python 2.7.2,win64,x64
- 最新版本的cygwin,使用/usr/bin/x86_64-w64-mingw32-g++.exe编译器

有谁知道这是否支持?
有没有办法使用我想念的dlltool?

(我确实在这里找到了使用的指导,
dlltool --as-flags=--64 -m i386:x86-64 -k -l libpython27.a -d python.def
但是当这样做时我"invalid bfd target"从dlltool 得到错误)

谢谢!

更新:我相信它可以完成,因为Enthought python包含这样的文件.我想为不包含它的更常见的发行版创建一个.

python cygwin win64 mingw cross-compiling

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

msvcp90.dll依赖于错误的msvcr90.dll文件?

我有一个用VS2008(amd64)构建的DLL项目.dll的清单说

<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
Run Code Online (Sandbox Code Playgroud)

当我将dll加载到DependencyWalker时,它引用winsxs-directory

amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251
Run Code Online (Sandbox Code Playgroud)

怎么会发生这种情况?是不是这整个事情 - 通过给每个dll/exe提供它所构建的版本的信息以及它所依赖的CRT版本来避免这种情况?

第二个,更令人困惑的是,msvcp90.dll依赖于msvcr90.dll,但无法找到msvcr90.dll!?!嘿,它与msvcm90.dll和msvcp90.dll一起位于相同的winsxs目录中!如果我将正确的msvcr90.dll复制到与我的dll相同的目录中,它就可以了!(但是,再一次,这不是我们在DllHell时代的情况吗?并且不应该msvc*.dll复制应该结束,因为我们有清单???)

如果有人对我有解释,我将非常感激!

win64 manifest visual-studio-2008-sp1 msvcr90.dll

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

64位Windows的pthread的源

我有一个开源项目,必须在Win32 / Win64 / Linux / MacOSX下构建。

我们想使用pthreads支持我们的多线程范例,但是由于我的项目是开源的,所以所有内容都必须从源代码构建。因此,我需要用于在Win64上编译的pthread版本的源代码文件。

有人知道我在哪里可以找到所述文件吗?

open-source win64 pthreads

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

x64调用约定(堆栈)和varargs

我已经阅读了微软的文档,但是这个方案太尴尬了,我想我会仔细检查以确保我正确理解它...

我的理解是通过参数传递的通用方法是这样的:

--- bottom of stack ---
(return address)
[shadow space for arg 1]
[shadow space for arg 2]
[shadow space for arg 3]
[shadow space for arg 4]
arg N
arg N - 1
arg N - 2
...
arg 6
arg 5
---- top of stack -----
Run Code Online (Sandbox Code Playgroud)

实施时似乎很尴尬va_arg......这实际上是否正确?

windows 64-bit win64 calling-convention

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

JetBrains Rider 能否与 IISExpress 一起正常工作?

我使用的 JetBrains Rider 是官方网站上的最新版本,2019.1.2(免费试用 30 天)。不是破解版。

我有一个包含 ASP.NET Web API csproj 的解决方案。该解决方案在 IIS 或 VS + IISExpress 中正常工作。

和 VS 一样,Rider 也在 .idea 文件夹中创建了一些配置文件。在其中,我可以找到 IISExpress 的 applicationhost.config 文件。

问题是 IISExpress 永远无法启动并在我开始在控制台中调试后显示错误:

**Failed to initialize site bindings**
Error initializing ULATQ.  hr = 80070005
Terminating W3_SERVER object
InitComplete event signalled
Process Model Shutdown called
Waiting for all LISTENER_CHANNELS to stop
Unable to start iisexpress.
Run Code Online (Sandbox Code Playgroud)

我检查了 applicationhost.config 文件。它与VS生成的相同。它还有绑定信息行,我确定端口可用:

**Failed to initialize site bindings**
Error initializing ULATQ.  hr = 80070005
Terminating W3_SERVER object
InitComplete …
Run Code Online (Sandbox Code Playgroud)

win64 iis-express rider iis-express-10

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

如何修复错误c2118:负下标

再次,将32位应用程序移植到64位.我在下面提到的C_ASSERT语句中得到了负下标错误.


C_ASSERT (sizeof(somestruct) == some#define);
Run Code Online (Sandbox Code Playgroud)

我还阅读了http://support.microsoft.com/kb/68475文章,但不知道在这种情况下我是否知道如何修复它.

感谢帮助.

提前致谢.

c++ 64-bit win64 visual-c++

4
推荐指数
1
解决办法
9604
查看次数

MySQL ODBC 32对64位

我有一个32位应用程序,必须使用64位版本的MySQL在Windows x64服​​务器上运行.
我应该使用32位ODBC驱动程序还是64位ODBC驱动程序?
或者我也应该安装32位版本的MySQL吗?

mysql 64-bit odbc win64 32-bit

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

如何检索system32或SysWOW64的正确路径?

我有一个32位进程,可以在32位或64位Windows中运行.因此,当然,如果进程尝试访问该文件c:\windows\system32\file.ext,它将被重定向到c:\windows\SysWOW64\file.ext.到目前为止很好 - 我不想禁用重定向.

我的问题是我的进程实际上并没有访问该文件 - 相反它只是将其路径写入文本文件,我希望该文本文件SysWOW64在64位系统和system3232位系统上读取.我怎样才能做到这一点?

windows win64 32bit-64bit

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

如何在win64上禁用重定向

我想复制c:\Windows\regedit.exeregedit2.exe名称相同的目录但是当我尝试复制它时,我收到一个错误,说regedit.exe找不到文件"或者有时将它复制到windows\SysWOW64目录下.实际上我知道win64它是重定向它但是如何禁用重定向和复制windows/regedit.exe到windows/regedit2.exe.我的示例代码是

if(File.Exists(@"c:\Windows\regedit.exe"))
try
{
File.Copy(@"c:\Windows\regedit.exe", @"c:\Windows\regedit2.exe", true);
}
catch (Exception ex){}
Run Code Online (Sandbox Code Playgroud)

有任何人可以帮助我

c# redirect win64

4
推荐指数
1
解决办法
3978
查看次数

如何调整为WINx86编译的代码为WINx64编译

我正在使用Component Tag(NativeInt)值的赋值将其添加到字节集中.该程序在为WIN32编译时工作正常,但不为WINx64编译.(错误2001所需的序数类型)这是一个MCVE:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, System.Classes;
  var 
  S:set of byte;
  C:TComponent;

begin
   C:=TComponent.Create(nil);
   C.Tag:=1;
   s:=[C.Tag];
   C.Free;
 end.
Run Code Online (Sandbox Code Playgroud)

如何调整代码使其适合WINx64编译?

delphi win64 delphi-xe5

4
推荐指数
2
解决办法
186
查看次数