- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 OpenWatcom 编译一个 Photoshop Filter 插件。该代码已经存在并且可以与 Visual Studio 完美配合。
函数如下所示:
extern "C" __declspec(export) void PluginMain(short selector, FilterRecordPtr pb, intptr_t *data, short *result);
它在 Visual C++ 中完美运行。请注意,没有明确指定调用约定(Adobe 未在其 SDK 头文件中定义任何调用约定)。
虽然它在 VC++ 中工作,但在 OpenWatcom 中这不起作用,并且调用约定似乎不正确。 (即使使用“HelloWorld”函数,我也会出现奇怪的行为,例如堆栈损坏)。
在维基百科上,我查看了带有调用约定的表格:The table says如果未指定调用约定,Watcom 会将参数放入寄存器“EAX、EDX、EBX、ECX”,从右到左填充堆栈,然后被调用者清理堆栈。但是该表没有说明如果没有指定调用约定,Microsoft 编译器会做什么。我确实认为 Visual Studio 默认使用不同的调用约定。所以我尝试在 OpenWatcom 中指定 __stdcall
、__cdecl
或 __pascal
,但没有太大帮助。
我的一个问题是,如果未指定任何内容,Visual Studio 的默认调用约定到底是什么?究竟将什么放入寄存器,堆栈的哪个方向,谁清理堆栈?我在任何地方都找不到此信息。
如果我知道确切的行为,我也许可以使用 OpenWatcom 中的“#pragma aux”功能来强制执行自定义调用约定?
或者您知道我可以尝试修复 OpenWatcom 中的调用约定的其他方法吗?
最佳答案
(从评论中移出)
Visual C++ 中的默认调用约定是 cdecl , 尽管 it can be changed through a command-line switch (/Gd
, /Gr
, /Gv
, /Gz
) .
仔细阅读,似乎 Watcom 也有一组类似的选项 - -ecc
应该将其设置为默认使用 cdecl
。
关于c++ - OpenWatcom/VisualStudio 在重新调用约定方面的互操作性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861096/
我注意到今天我们在 VS 2015 中的一个解决方案发生了变化。似乎为解决方案生成的测试项目使用与同一解决方案中现有测试项目不同的命名空间。 仅引用的测试项目 Microsoft.VisualStud
更新测试项目 NuGet 后出现此错误: The type 'TestClassAttribute' exists in both 'Microsoft.VisualStudio.QualityToo
我正在尝试设置 tfs 和 sharepoint 之间的构建集成。 我们有一个单独的构建服务器。我们已关注 these steps并检查它们的正确性 3 次。但是在 sharepoint 构建中,我们
今天在安装VS2019的时候,在安装的过程中一直无法进入安装界面,在网上找了各种方法试了将近40分钟都没有找到有效的办法,不过就快放弃的时候,问题解决了,哈哈哈!!!! 1.下载地址:https:
在 Visual Studio 中,用于在 WinForms 项目中添加元素的上下文菜单命令与 WPF 项目中显示的命令不同。事实上,我可以在第一个中看到“Add->Windows Form”,在第二
我正在创建一个多项目模板 问题是当我运行模板时,每个项目都会创建一个与项目名称匹配的目录文件夹。 我不希望每个项目都默认创建文件夹,如下所示: solutionfolder\Libraries\BL\
我下载了这门课http://www.codeproject.com/file/VersionInfo.asp 我用它从我当前运行的几个程序中获取文件信息。 当我想从我编写的程序中获取信息时,它工作正常
我正在尝试调试一个树状结构,所以我在每一层都制作了一个 watch 。我走得越低, watch 变量名称变得太长了。有没有办法重命名它们: {,,HTM_Projekt.exe}*(Node*){*}
我已经编写了一个 DLL,然后在我的解决方案中添加了对它的引用,但是当我在 usings 部分中声明它时,它给我的错误是无法识别,您是否缺少引用? 这是我设置解决方案的方式... 1-首先我创建了我的
我们有一个大型 C# 程序,分为 2 个主要组:内核 库和(客户)特定 应用程序和服务。 我们的 TFS 结构(简化)是这样的: 内核 深度学习计划 第 1 版 第 2 版 第 3 版 ... 客户A
VS 2010 Pro:我已经为我的库生成了一个类图,现在向它添加了一些类,但是类图只显示了旧类并且不会自动更新。所以我想知道这是不是这样,我应该每次都删除并重新添加类图吗?或者这些是我应该在 VS
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我刚刚在 c# .net 中制作了一个程序,现在当我尝试保存或调试它时,我在消息框中收到此错误。这是我目前为我的项目编写的代码。错误代码“内存不足,无法继续执行程序”请帮忙。
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我想扩展 Visual Studio,这样当有人右键单击解决方案资源管理器时,上下文菜单应该有一个新菜单项,比如“打开自定义表单”,单击哪个应该打开一个表单(这个表单实际上会接受一些设置并修改配置相应
IDE在启动时在启动屏幕上崩溃。我查看了日志,发现了很多错误: 14 2017/07/09 07:28:50.672 Information VisualSt
有没有人想知道 VisualStudio 将区域状态存储在源代码中的什么位置(展开或折叠?)。据我所知,它们没有存储在解决方案、项目或源文件中...... 最佳答案 所有这些类型的设置(区域折叠状态、
我正在使用T4(文本模板转换工具包)进行一些工作,并试图达到可以创建自己的自定义文本模板宿主的地步。但是,所有这些都依赖于 Microsoft.VisualStudio.TextTemplating
我创建了一个名为“WordpressAutomation”的新解决方案 我在这个解决方案中创建了一个名为“WordpressAutomation”的新项目,一个类库 我在这个解决方案中创建了一个新项目
最近我试用了 Visual Studio 2017。我们有一个 MSDN 订阅。我们正在开发一些我们正在编写为 WPF 应用程序的内部应用程序。这些应用程序需要安装在用户没有管理权限的用户计算机(Wi
我是一名优秀的程序员,十分优秀!