cost 253 ms
在 C++ 中使用 Delphi DLL - 如何正确调用函数? - Using a Delphi DLL in C++ - How to properly call functions?

在工作中,我们使用的一个品牌的电池循环仪有一种专有的编码数据格式,我想直接在我的脚本中读取这种格式,而不是更大的 ASCII 版本的数据。 制造商提供了一个 DLL(无库或标头)及其一些 Delphi 使用示例代码、非常少的文档和一个示例可执行文件(运行失败并出现错误 0xc000007b)。 按 ...

如何从 6502 (cc65) 上的 C 访问没有前导 _ 的汇编语言符号 - How to access assembly language symbols without a leading _ from C on 6502 (cc65)

我正在使用 cc65 用 6502 汇编语言编写一些代码。 因为我生活在 2022 年而不是 1979 年,并且可以使用比目标平台强大一百万倍的开发机器,所以我正在为 C 中的汇编语言代码编写单元测试。 显然 C 和汇编语言的调用约定是不同的,所以我有一堆接受 C 风格 arguments 然后调用 ...

无法对库中的符号名称进行分解(nm、objdump、c++filt) - Failure to demangle symbol name in library (nm, objdump, c++filt)

我在我的perf script输出中注意到了非破坏函数,最初认为perf可能做错了什么。 但是,深入研究一些*.so文件,我已经能够用c++filt -t 、 nm -C和objdump -D -C重现该问题。 我有点不明白在拆解过程中可能会出现什么问题。 没有被破坏的符号之一是: 该库是用 ...

为什么GDB找不到一些按名字反汇编的函数? - Why can't GDB find some functions to disassemble by name?

有时我的二进制文件中有一个函数我确定没有被优化掉,因为它被另一个函数调用: 但是,如果我要求 GDB 使用与它引用的函数相同的名称来反汇编它,它会声称该函数不存在: 但是,如果我使用它的地址反汇编它,它工作正常: 这非常不方便,因为我不知道先验地址——我必须去反汇编一个调用者才能找到被调 ...

在共享库中使用应用程序 class - Use of application class within shared library

我正在尝试创建一个“游戏平台”,让用户选择要玩的游戏以及渲染它的图形库。 这些游戏和图形库被实现为动态库,在运行时加载。 我们将把游戏平台称为核心。 共享库包含在运行时使用 RTLD_LAZY 标志加载的类,但是如果我使用 RTLD_NOW 加载它,程序将正确编译。 为了避免名称混淆,我遵循了本教 ...

对名称修改目的的总结是否正确? - Is this summary of the purpose of name mangling correct?

从文档: 由于类私有成员有一个有效的用例(即避免名称与子类定义的名称发生名称冲突),因此对这种称为名称修饰的机制的支持有限。 __spam 形式的任何标识符(至少两个前导下划线,最多一个尾随下划线)在文本上替换为 _classname__spam,其中类名是当前 class 名称,前导下划线被去 ...

什么会导致非虚拟 thunk 到 XXX 的损坏名称发生变化 - What can cause a change in the mangled name of a non-virtual thunk to XXX

我构建了一个中间件库(wxWidgets),其中包含一组修复问题并添加一些功能(用于 Audacity)的补丁。 针对已修补的二进制文件运行先前构建的客户端应用程序 (Audacity) 副本,我收到有关non-virtual thunk to wxTextCtrl::Cut()的缺失符号错误。 针 ...

从标记为外部 C 的 function 调用损坏的 class 实例方法 - Calling mangled class instance methods from function marked extern C

我有一个通常声明的 class: 为了编译到 WASM,我试图实例化这个 class 并调用测试方法,如下所示: 使用extern "C"指令来防止名称修改,这使得在 JS 模块上暴露它变得困难。 但是,编译这个程序给出了错误undefined symbol: _ZN4Task4testERi (r ...

如何使用 ctypes 调用带有双下划线 function 名称的 DLL function 名称? - How to use ctypes to call a DLL function with double underline function name?

我正在尝试使用 Python 3.8 和ctypes模块在 DLL 中调用 function 。 DLL 中的 function 名称是__apiJob() 。 注意,这个 function 以双下划线开头。 我想在自定义的 object 中调用它,例如: 但是由于 function 名称以双下 ...

类型绑定过程如何与 Fortran 中的派生类型相关联? - How are type-bound procedures linked to their derived types in Fortran?

来自 C++,我知道非虚拟成员函数通过名称修饰与它们的类相关联。 我正在尝试学习现代 Fortran,我的问题是 Fortran 类型绑定过程如何与其类型相关联? 例如,考虑派生类型 我的问题是关于程序调度的内部结构。 类型shape的实例shp的 memory 布局是否包含指向 function ...

在 class 中访问 `__attr` 时名称重整如何工作? - How does name mangling work when accessing `__attr` inside the class?

我知道 Python 中的数据处理一般是什么以及它的目的是什么,但有一个微妙的方面我想澄清一下。 假设我们有一个 class: p = P(); p.__dict__ p = P(); p.__dict__现在有键_P__y所以这是数据重组发生的地方。 不过,我的问题是,鉴于__dict__中没 ...

C++中模板&lt;&gt;的包装函数 - Wrapper function for template<> in C++

我目前正在尝试创建一个可以将 C++ 转换为 C 的包装器接口,在研究这样做的可能性时,我遇到了模板函数(和类)。 知道这些函数可以接受任何数据类型并返回任何数据类型,我发现很难创建一个 C 可以读取的相应调用者函数名称。 一个简单的例子是加法器。 我的界面包括extern "C"命令以避免 C ...

是否可以显式调用名称损坏的函数? - Is it possible to explicitly call a name mangled function?

假设我有类似的东西 是否可以在这里通过函数的名称修改版本调用 Foo::goo() ? 编辑: 作为澄清,这只是一个实验,看看是否可以显式调用名称损坏的函数。 这里没有进一步的目标。 我认为所有成员函数基本上都将 this 指针作为它们的第一个参数。 我知道这不会链接,但我不明白为什么。 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM