在我的一个项目中,我使用一个Delphi应用程序,它动态加载一个包装DLL(导出C-Style函数),后者又与一堆第三方DLL静态链接.
它在我的测试机器上工作正常,但在我的客户计算机上它无法初始化时出现错误消息"无法在TMYlibrary.dll中找到入口点_somefunction @ 4AKKZ".
在使用sysinternal的进程监视器进行一些调查后,我意识到Windows首先会在windows/sytem32中看到DLL,所以如果在system32中出现类似于我的 DLL的DLL,那么windows会选择那个并尝试找到我的函数入口点.它 - 会失败.
你知道改变windows的DLL搜索行为的可能吗?
附加信息
我试图解决这个问题:
给定n个元素数组的索引向量的5x1单元阵列,我需要找到反向映射.
我所拥有的是关系"在第2组中,有元素15,16,17 ......"我想要的是"元素15是2,4,5组的成员".
这是我的单元格数组的结构
myCellArray =
[1x228 double]
[1x79 double]
[1x136 double]
[1x93 double]
[1x81 double]
Run Code Online (Sandbox Code Playgroud)
这是我的索引向量的一部分内容
myCellArray{2}(1:5) =
15 16 17 18 19
Run Code Online (Sandbox Code Playgroud)
我想要的是一个包含每个元素的组成员资格索引的n个单元格的单元格数组.
救命?
特定
std::vector<CMyClass> objects;
CMyClass list[MAX_OBJECT_COUNT];
Run Code Online (Sandbox Code Playgroud)
这样做是明智的吗?
for(unsigned int i = 0; i < objects.size(); list[i] = objects.at(i++));
Run Code Online (Sandbox Code Playgroud)
或者我应该将循环扩展到此?
for(unsigned int i = 0; i < objects.size(); i++)
{
list[i] = objects.at(i);
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来治愈至少我必须使用的漏洞DLL的症状.虽然库(OpenCascade)声称提供了一个内存管理器,但我还是无法释放它分配的任何内存.
我至少希望将这个模块的调用放在"沙箱"中,以便在OCC模块甚至不再运行时保持我的应用程序不会丢失内存.
我的问题是:虽然我意识到这将是一个UGLY HACK(TM)这样做,是否可以预先分配一段内存供图书馆专门使用,或者围绕它构建某种沙盒以便我可以跟踪他们使用的内存区域,以便在我完成时自行释放它们?
或者那是丑陋的黑客,我应该尝试解决问题呢?
是否有任何技术或工具可用于在运行时检测此类死锁?
在工作线程(几个中的一个,通常是4-6)中描绘这个
try
WaitForSingleObject(myMutex);
DoSTuffThatMightCauseAnException;
except
ReleaseMutex(myMutex);
end;
Run Code Online (Sandbox Code Playgroud)
或者更普遍的是有一种设计模式来避免这些错误吗?
经过长时间的黑客攻击,我在上面的代码中编写了上面的代码
有没有任何物理引擎可用于j2me,因为它是为symbian,iphone等请发给我链接或其他来源,我可以得到相同的回复尽快.在此先感谢大家
我正在为Delphi 2010中的大型应用程序开发一个新模块.
我在两个项目的项目组中组织了我的源代码,一个用于构建完整的应用程序,另一个用于启动我的测试套件(与主应用程序共享一些源代码).
在单元的初始化期间,我需要采取不同的行动,这取决于我正在编译的两个中的哪一个.
unit MySharedUnit
var
flag : TFlagValues;
implementation
[...]
initialization
if IsTestProject then
flag := TestValue
else
flag := ReleaseValue;
end.
Run Code Online (Sandbox Code Playgroud)
目前,我使用项目定义的环境变量(仅在一个项目的选项中定义)来决定活动项目.
我的问题是:
是否有另外一种或更优雅的方法可以做到这一点,比如内置的#define'd值,当测试应用程序应该在Release模式下运行时,不需要我手动修改项目选项?
我有一个应用程序加载CAD数据(自定义格式),从本地文件系统指定绘图的绝对路径或从数据库.
通过将图纸标识符作为参数的库函数来实现数据库访问.
标识符的格式类似ABC 01234T56-T,而我的路径是典型的Windows路径(例如x:\Data\cadfiles\cadfile001.bin).
我想编写一个包装器函数将一个String作为一个参数,它可以是一个路径或一个标识符,它调用适当的函数来加载我的数据.
像这样:
Function CadLoader(nameOrPath : String):TCadData;
Run Code Online (Sandbox Code Playgroud)
我的问题:我怎样才能优雅地决定我的字符串是一个idnetifier还是文件的路径?使用正则表达式?或者只搜索'\'和':',它们没有出现在标识符中?
delphi ×4
delphi-2010 ×4
c++ ×3
cell-array ×1
debugging ×1
dll ×1
java-me ×1
matlab ×1
memory-leaks ×1
opencascade ×1
physics ×1
regex ×1
stl ×1
windows ×1