标签: dumpbin

为什么subprocess.Popen不起作用

我尝试了很多事情,但是由于某种原因,我无法使事情正常进行。我正在尝试使用Python脚本运行MS VS的dumpbin实用程序。

这是我尝试过的(对我不起作用的)

1。

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
command = '"C:/Program Files/Microsoft Visual Studio 8/VC/bin/dumpbin" /EXPORTS ' + dllFilePath
process = subprocess.Popen(command, stdout=tempFile)
process.wait()
tempFile.close()
Run Code Online (Sandbox Code Playgroud)

2。

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
command = 'C:/Program Files/Microsoft Visual Studio 8/VC/bin/dumpbin /EXPORTS ' + dllFilePath
process = subprocess.Popen(command, stdout=tempFile)
process.wait()
tempFile.close()
Run Code Online (Sandbox Code Playgroud)

3。

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
process = subprocess.Popen(['C:\\Program Files\\Microsoft Visual Studio 8\\VC\\bin\\dumpbin', '/EXPORTS', dllFilePath], stdout = tempFile)
process.wait()
tempFile.close()
Run Code Online (Sandbox Code Playgroud)

有没有人对dumpbin /EXPORTS C:\Windows\system32\kernel32.dll > tempfile.txt在Python中正确执行我想做的事情有任何想法?

python subprocess dumpbin

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

dumpbin导出输出中的@number是什么

使用DUMPBIN在C++ .DLL(或IMPLIB .LIB文件)与/输出或/进口我看到的语法中,如以下的输出:

Exports

ordinal    name

      _CloseConduit@4
      _ConduitPort
      _GetConduitVersion@4
      _GetStatusConduit@8
      _GetTimeout@0
      _OpenConduit@4
Run Code Online (Sandbox Code Playgroud)

我无法找到@n指定含义的定义.我最后得出结论,它是参数数据的字节数,但是根据一些例子的推断,它让我有点紧张.任何人都可以指向一个参考,或者与任何权威人士说,这里的数字是什么意思?

c++ windows dll export dumpbin

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

使用dumpbin显示DLL的外部符号(UNDEF)?

我们都知道我们可以使用dumpbin for .obj文件来显示所有符号,包括外部符号.

dumpbin /symbols ExternCTest.ob
00F 00000000 UNDEF  notype ()    External     | ?foo@@YAHH@Z (int __cdecl foo(int))
Run Code Online (Sandbox Code Playgroud)

但我想知道我怎么能为DLL做这个?我也尝试过dumpbin/exports以及依赖walker,但它没有显示外部符号.

我该怎么办?

谢谢

c++ dll dumpbin

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

在反汇编的二进制文件中HIGHLOW的含义是什么?

我刚刚第一次使用DUMPBIN,我在输出文件中反复看到术语HIGHLOW:

BASE RELOCATIONS #7
   11000 RVA,       E0 SizeOfBlock
    ...
         3B5  HIGHLOW            2001753D  ___onexitbegin
         3C1  HIGHLOW            2001753D  ___onexitbegin
    ...
Run Code Online (Sandbox Code Playgroud)

我很好奇这个词的意思.我没有在Google或Stackoverflow上找到任何关于它的内容.

c++ windows x86 assembly dumpbin

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

PInvoke签名与非托管目标签名不匹配

我正在尝试为modbusm.dll创建一个包装器C#文件(win-tech.com/html/mbusocx.htm),我正在使用dumpbin输出.

转储文件modbusm.dll

文件类型:DLL

该部分包含modbusm.dll的以下导出

00000000 characteristics
41128817 time date stamp Fri Aug 06 00:48:47 2004
    0.00 version
       1 ordinal base
      27 number of functions
      27 number of names

ordinal hint RVA      name

      1    0 000085BA _AbortTheCall@4
      2    1 00003441 _CloseConnection@4
      3    2 000033A7 _ConnectASCII@12
      4    3 000033E1 _ConnectDanielsASCII@12
      5    4 000033C4 _ConnectDanielsRTU@12
      6    5 0000338A _ConnectRTU@12
      7    6 00001019 _ConnectTCP2@12
      8    7 00001000 _ConnectTCP@8
      9    8 0000829A _DialCall@8
     10    9 00003376 _EnableConnectionCallback@4
     11    A 00003342 _EnableModbusCallback@8
     12    B 00008123 _GetCallState@8 …
Run Code Online (Sandbox Code Playgroud)

c# wrapper dumpbin modbus-tcp

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

使用dumpbin查看C++库信息时UNDEF和notype()是什么意思?

我使用 dumpbin /symbols 来查看我创建的库。一些功能有民主基金 NoType在输出。这意味着什么?有没有研究dumpbin输出结构的链接

c++ dumpbin

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

Dumpbin显示奇怪的方法名称(在MS Visual C++中生成导出功能)

我在VS中创建了新的Win32项目,并为此目的选择了动态库(*.dll).

我在主文件中定义了一些导出函数:

__declspec(dllexport)
int TestCall(void)
{
    int value = 4 / 2;
    std::cout << typeid(value).name() << std::endl;
    return value;
}

__declspec(dllexport)
void SwapMe(int *first, int *second)
{
    int tmp = *first;
    *first = *second;
    *second = tmp;
}
Run Code Online (Sandbox Code Playgroud)

当我看到dumpin/exports时,我得到了:

ordinal hint RVA      name

      1    0 00001010 ?SwapMe@@YAXPEAH0@Z
      2    1 00001270 ?TestCall@@YAHXZ
Run Code Online (Sandbox Code Playgroud)

我正在调用C#这样的版本:

[DllImport(@"lib1.dll", EntryPoint = "?TestCall@@YAHXZ",
CallingConvention = CallingConvention.Cdecl)]
static extern int TestCall();
Run Code Online (Sandbox Code Playgroud)

这不是使用导出方法的正确形式.我在C++ DLL项目中为导出方法生成这样的名称失败了吗?

dll pinvoke cdecl dllexport dumpbin

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

是否可以使用新的 csproj 项目文件覆盖或清除 dll 构建中的调试路径?

当使用dumpbin来查看我的媒体库的详细信息:
dumpbin /headers Test.dll

我看到 {{FullFolder to Test.pdb}} 是 pdb 的完整文件夹。

调试目录

    Time Type        Size      RVA  Pointer
-------- ------- -------- -------- --------
95BA9373 cv            A1 000199D4    17BD4    Format: RSDS, {4AF64893-BAF4-4FF3-9343-E8D5A55E94FF}, 1, {{FullFolder to Test.pdb}}
00000000 repro          0 00000000        0
Run Code Online (Sandbox Code Playgroud)

有没有办法在 csproj 文件中排除这个?

我的 .csproj 看起来像:

<DebugType>full</DebugType>
<IncludeSource>True</IncludeSource>
<IncludeSymbols>True</IncludeSymbols>
<PdbPath>none</PdbPath>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Run Code Online (Sandbox Code Playgroud)

似乎该PdbPath元素不再以新的(vs2017 多框架) .csproj 格式工作?

path csproj dumpbin pdb

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

使用dumpbin从.dll或.lib文件中查看源代码

我以前没有.dll或.lib文件的经验,我需要在这些文件中看到函数的代码.我不知道要看哪一个,在stackoverflow中搜索引导我到dumpbin,我可以使用dumpbin/EXPORTS来查看标题和函数.但是我怎么能看到实际的代码呢?我可以通过控制台完成,还是必须下载单独的程序?

PS:我使用Visual Studio,这些是C++函数.

任何帮助,将不胜感激.

c++ dll visual-studio dumpbin

0
推荐指数
1
解决办法
969
查看次数