草庐IT

register-allocation

全部标签

C++ 中间函数 Hook : get register values and jump back [x86 assembly on windows]

在寄存器EBP中有一个int值,在EBX中有一个字符串。我需要在我自己的函数中从这些寄存器中获取值,对它们进行一些操作,最后跳回下面的一些代码。我在0x46AA17处对名为JmpHook的函数执行了一个JMP。voidJmpHook(){char*mystring;_asmmovmystring,ebxprintf("value:%s",mystring);_asm{jmp[0x46AA87]}}如您所见,我正在尝试将EBX处的字符串移动到mystring中,最后跳回0x46AA87,这是位于我的JMPJmpHook下方的几行。printf被调用并且mystring被输出,但所有这些在

windows - 什么是 “Cannot set allocations”错误,由谁发出,我该怎么办?

几年来,客户偶尔收到有关在应用程序启动时出现的非描述性错误消息“无法设置分配”的报告,困扰着我们。到目前为止,我们从未能够在我们自己的测试环境中重现该问题。我现在已经没有足够的想法来尝试对此进行跟踪。这是随时间推移而积累的观察结果的集合:错误消息文本显示为“无法设置分配”(注意没有标点符号)。窗口标题仅显示“错误”(或等效的本地化内容)。无论操作系统的语言环境如何,“无法设置分配”文本始终为英文。到目前为止,我无法找到包含消息文本的DLL或EXE。对于各种产品,Google都充满了reportsofthiserror-但没有解决方案。到目前为止,我可以确定的受影响产品之间唯一的统一方面

Windows 上的 C++ : function to get allocated memory?

我使用C++编写代码,在Windows7上使用VisualStudio2008。我的应用程序有内存泄漏,我可以通过系统监视器看到它。我需要在代码中发现它。是否存在返回分配给调用进程的内存量的函数? 最佳答案 有一个MSVC特定的memleak检测解决方案//enablememoryleaksdetection#if!defined(NDEBUG)HANDLEhLogFile=CreateFile("log.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTR

c# - Resharper 的 "Object allocation (evident)"是什么意思?

Resharper在我的代码中突出显示新关键字并提示“对象分配(明显)”。这是什么意思? 最佳答案 SourceHighlightsobjectcreationexpressionswhereexplicitallocationhappens.这意味着它可用于通知您有关新分配的信息,从而减少C#程序热路径中的堆分配数量。 关于c#-Resharper的"Objectallocation(evident)"是什么意思?,我们在StackOverflow上找到一个类似的问题:

c# - 温莎城堡 : Auto-register types from one assembly that implement interfaces from another

我使用CastleWindsor作为我的IoCcontainer.我有一个具有类似于以下结构的应用程序:MyApp.Services.dllIEmployeeServiceIContractHoursService...MyApp.ServicesImpl.dll员工服务:MyApp.Services.IEmployeeServiceContractHoursService:MyApp.Services.IContractHoursService...我使用XMLconfiguration目前,每次我添加一个新的IService/Service对时,我都必须向XML配置文件添加一个新组

C#如何将 "register"类变成 "plug-ins"服务类?

截至2022年的更新#2这么多年过去了,仍然没有好的答案。决定revive这个问题。我正在尝试实现类似于我试图用下图(问题结束)展示的想法。一切都从抽象类Base到DoSomething类进行编码。我的“服务”需要向服务已“注册”的“DoSomethings”类型的消费者提供“操作”,此时我看到自己在重复(复制/粘贴)以下逻辑服务等级:publicasyncTask>DoSomething1(....params....){varaction=newDoSomething1(contructParams);returnawaitaction.Go(....params....);}我想

c# - GCHandle.Alloc 是否分配内存?

我正在使用SciTech的.NETMemoryProfiler来降低程序的内存分配率和垃圾回收频率。令人惊讶的是,根据探查器,最大数量的分配似乎来自GCHandle.Alloc调用,我正在执行这些调用以将现有的.NET数组编码到nativeOpenGL。我的理解是调用GCHandle.Alloc不会分配内存,它只会将现有内存固定在托管堆上?是我错了还是分析器错了? 最佳答案 .NETreferencesource任何人都可以看到,您可以自己看看并找出答案。如果深入研究GCHandle.Alloc,您会看到它调用了一个名为Intern

c# - 简单注入(inject)器 : Register ILogger<T> by using ILoggerFactory. CreateLogger<T>()

我正在处理一个使用简单注入(inject)器作为依赖注入(inject)器的项目。另一方面,该项目使用Microsoft.Extensions.Logging来记录某些类中发生的事件。我的技术问题很容易解释。我想在我的DI中独立于正在调用的类T注册ILogger,但是我确实需要从我的ILoggerFactory.CreateLogger()中完成它方法,因为这会使用Microsoft.Extensions.Configuration获取记录器配置.我需要使用这样的东西来实例化我的记录器:privateMicrosoft.Extensions.Logging.ILoggerCreateL

c# - 编辑记录时 RadGrid 中的 "Cannot unregister UpdatePanel with ID ' xxx ' since it was not registered with the ScriptManager... "

让我切入正题。我的场景如下:我有自定义添加的字段来过滤RadGrid并且过滤效果很好。当我想在RadGrid中使用EditForm编辑记录时,问题就来了。它过去工作正常,但后来我在选择正确的行时遇到了一些问题(我总是选择错误的行)所以这就是我修复它的方法。所以,我的带过滤器的RadGrid看起来像这样:我所做的是使用session,这将帮助我们稍后确定过滤的RadGrid数据源是已启动还是默认的。protectedvoidbtnSearch_Click(objectsender,EventArgse){Session["SearchKontakti"]="1";}之后,我必须使用if循

c# - `fixed` 与 GCHandle.Alloc(obj,GCHandleType.Pinned)

我试图找出用fixed关键字定义的固定指针是如何工作的。我的想法是在内部GCHandle.Alloc(object,GCHandleType.Pinned)用于此目的。但是当我查看为以下C#代码生成的IL时:unsafestaticvoidf1(){vararr=newMyObject[10];fixed(MyObject*aptr=&arr[0]){Console.WriteLine(*aptr);}}我找不到任何GCHandle的踪迹。我看到该方法中使用固定指针的唯一提示是以下IL声明:.localsinit([0]valuetypeTestPointerPinning.MyObj