我有.exe加载的.exe和许多插件.dll模块.(我有两者的来源.)跨平台(带源)解决方案是理想的,但平台可以缩小到WinXP和Visual Studio(在我的情况下为7.1/2003).
内置的VS泄漏检测器只给出了调用new/malloc的行,但是我有一个分配包装器,所以完整的符号堆栈跟踪是最好的.
检测器还能够检测.exe及其附带的插件.dll模块中的泄漏.
我在WinXP下构建了一个.dll,声称它在加载时无法找到DWMAPI.DLL.问题是这个DLL是Vista DLL,对于安装了IE7的XP用户来说这是一个已知问题.建议通过添加/删除程序卸载IE7或修复.NET Framework.我做了修理,没有任何改变.我不打算卸载IE7,因为必须有一个更好的解决方案,而不是"重新安装Windows".
我读过有关试图卸载IE7的人的坏话,所以我不愿意走那条路.
我在Visual Studio 2003(7.1)下使用C++.我没有看到我可能在应用程序启动时强制延迟加载的选项.我刚刚创建DLL项目时使用了默认设置.我刚刚找到了一个有趣的选项,链接器 - >输入 - >延迟加载的DLL,所以我把DWMAPI.DLL放在那里强迫它延迟加载.但是,我在链接时得到了这个:
LINK : warning LNK4199: /DELAYLOAD:dwmapi.dll ignored; no imports found from dwmapi.dll
Run Code Online (Sandbox Code Playgroud)
..当然,它在尝试加载我的DLL时没有改变.为了它,我添加了导致DWMAPI.DLL的整个DLL树,我收到相同的消息.(对于记录,它是foundation.dll-> shell32.dll-> shdocvw.dll-> mshtml.dll-> ieframe.dll-> dwmapi.dll.)
为了更具体地说明我正在做什么,我正在编写一个Maya插件并在脚本编辑器中获取始终有用的文本:
// Error: Unable to dynamically load : D:/blahblahblah/mydll.mll
The specified module could not be found.
//
// Error: The operation completed successfully.
//
// Error: The operation completed successfully.
(mydll) //
Run Code Online (Sandbox Code Playgroud)
我使用Dependency Walker来初步追踪问题,这就是我引导DWMAPI.DLL的原因.这些消息取决于我,DWMAPI.DLL是唯一一个旁边有黄色问号的东西:
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved …Run Code Online (Sandbox Code Playgroud) 这是错误Dependency Walker为我提供了使用VC++ 2005 Express Edition构建的可执行文件.当我尝试运行.exe时,我得到:
This application has failed to start because the application configuration
is incorrect. Reinstalling the application may fix this problem.
Run Code Online (Sandbox Code Playgroud)
(我是清单/ SxS /等.在VC++ 2003之后做事的方式的新手.)
编辑:我正在我正在构建.exe的同一台机器上运行.在事件查看器中,我没有帮助:
Faulting application blah.exe, version 0.0.0.0, faulting module blah.exe,
version 0.0.0.0, fault address 0x004239b0.
Run Code Online (Sandbox Code Playgroud) 我有一个项目在附加包含部分中包含以下行:
"$(SOMEPATH_SHORTNAME)\包括"
有人能告诉我在哪里可以找到$(SOMEPATH)定义的吗?我只是在Visual Studio中搜索找不到它
我没有任何Objective-C经验,但具有强大的C++背景.是否有自动化工具/脚本,或者最糟糕的情况是,使用一些优秀的对Objective-C到C++编写的端口代码的参考手册方法?涉及的困难是什么?
编辑:我被告知代码使用Objective-C相当简单.它是一个iPhone应用程序,可能不会在操作系统级别的UI中使用太多.C++版本适用于非Apple平台,其中GNUStep不是一个选项,因此Objective-C++不是一个选项.
本着与序列点相关的未定义行为的精神,例如"x = ++ x",它是否真的未定义?,如何让编译器抱怨这样的代码?
具体来说,我使用的是Visual Studio 2010和Xcode 4.3.1,后者是OSX应用程序,并没有提醒我这一点.我甚至把VS2010上的警告发送到"全部",并且很高兴编译了这个.(为了记录,VS2010的版本在变量中添加了1,其中Xcode的版本保持变量不变.)
c visual-studio-2010 undefined-behavior sequence-points xcode4.3
我已经安装了Eclipse和JDK,经历了"Hello World"教程,并阅读了Eclipse文档(关于Eclipse本身和使用Eclipse开发Java).我正在查看JUnit示例,以便更好地了解Java在运行时的工作原理.
当我学习一种具有更新范式的新计算机语言时,我就会感到困惑,我认为这部分是由于我对C++的经验.
关于优秀Java书籍/教程/等的任何建议.对于有C/C++背景的人?
我有以下 C 代码:
struct myStruct_t
{
const char m_name[60];
const uint32_t m_data;
};
const struct myStruct_t myStruct
__attribute__(( __aligned__( 64 ), section(".init") )) =
{
"myName",
(uint32_t)&someOtherStruct
};
Run Code Online (Sandbox Code Playgroud)
当我在 gcc 4.1.1(适用于 PS3)中编译时,我收到警告:
1>c:/t/ccy6.s: Assembler messages:
1>c:/t/ccy6.s(106): Warning: setting incorrect section attributes for .init
Run Code Online (Sandbox Code Playgroud)
警告指向的汇编代码是下面的“.section”子句:
.section .init,"aw",@progbits
.align 6
.type myStruct , @object
.size myStruct , 64
myStruct :
.ascii "myName"
.long someOtherStruct
Run Code Online (Sandbox Code Playgroud)
它不喜欢标志的“w”(可写)部分,因为 .init 中的内容是只读的,并且所有可能位置中的“const”不会迫使编译器不吐出“w”。我如何告诉编译器“不,真的,它是 const,我不是在开玩笑”?
c ×3
c++ ×2
assembly ×1
dependencies ×1
dll ×1
dwm ×1
gcc ×1
java ×1
manifest ×1
memory-leaks ×1
objective-c ×1
visual-c++ ×1
windows-xp ×1
xcode4.3 ×1