-
5 votesanswersviews
我们是否在Go中过度使用指针传递?
这个问题特定于函数调用,并且当通过值与指针传递结构时,指向Go优化器的可信度 . 如果您想知道何时在struct字段中使用值vs指针,请参阅:Go - Performance - What's the difference between pointer and value in struct? Please note: 我很容易理解,因此某些术语是不精确的 . 一些低效的Go Code 我们假设... -
0 votesanswersviews
未解析的外部符号 - 来自C dll的LNK2019
我将带有GetProcAddress的C dll中的GetInstance函数加载到我的基本代码中,并得到一些未解决的外部符号错误: 错误LNK2019:未解析的外部符号“_declspec(dllimport)public:unsigned int thiscall RegTestAPI :: CTestmode_Sle70 :: SetMSfr(unsigned int,unsigned s... -
2 votesanswersviews
在NASM召唤LONGLONG RtlLargeIntegerDivide(LONGLONG,LONGLONG,LONGLONG *)(stdcall)
我正在尝试调用以下函数: long long RtlLargeIntegerDivide(long long dividend, long long divisor, long long* pRemainder) 在汇编代码(NASM)中 . 它使用stdcall调用约定,并返回商 . 这些是规格: 输入:[EDX,EAX](被除数),[ECX,EBX](除数) 输出:[EDX,EAX](商),... -
1 votesanswersviews
恢复堆栈会导致访问冲突
我使用ASM写的基本上相当于memset() . 我写的代码有效,除了当我尝试恢复堆栈时,它会因访问冲突而崩溃 . 我已使用内联汇编将代码放入MSVC,因此我可以对其进行调试 . 函数返回时发生此问题 . 但是,当我取出 add esp, 4 行时,代码正确执行,但在main()函数返回后,MSVC表示变量周围的堆栈已损坏 . 我不愿意继续没有 add esp, 4 因为我知道这会在以后引起问题 ... -
1 votesanswersviews
如何在进入dll时访问堆栈上传递的参数?
我从ctypes调用NASM 64位DLL . dll需要五个输入参数 . 在Windows调用约定中,前四个在rcx,rdx,r8和r9中传递,第五个在堆栈上传递 . x64调用约定概述doc(https://docs.microsoft.com/en-us/cpp/build/overview-of-x64-calling-conventions)说"Any parameters ... -
0 votesanswersviews
汇编 - 将参数传递给函数调用
我目前正在通过反汇编C程序并试图了解它们的作用来进行汇编阅读 . 我被困在一个简单的问题:一个简单的你好世界计划 . #include <stdio.h> #include <stdlib.h> int main() { printf("Hello, world!"); return(0); } 当我拆卸主要时: (gdb) disassem... -
0 votesanswersviews
注册ESI导致RunTime-Check Failure#0错误
我花了很多时间试图解决这个问题,我不明白,为什么它不起作用 . 问题的描述在下面的评论中: .386 .MODEL FLAT, STDCALL OPTION CASEMAP:NONE .NOLIST .NOCREF INCLUDE \masm32\include\windows.inc .LIST .CODE DllEntry PROC hInstDLL:HINSTANCE, reason:D... -
2 votesanswersviews
glibc scanf从不对齐RSP的函数调用时的分段错误
编译以下代码时: global main extern printf, scanf section .data msg: db "Enter a number: ",10,0 format:db "%d",0 section .bss number resb 4 section .text main: mov rdi, msg ...