如果我有一个排序列表(比如快速排序),如果我要添加很多值,最好暂停排序,将它们添加到最后,然后排序,或者使用二进制文件来正确放置项目添加它们.如果这些项目是随机的,或者已经或多或少的顺序,它会有所不同吗?
德尔福2009,在一些很酷的东西,也刚刚得到匿名方法.我已经看过这些示例,以及关于匿名方法的博客文章,但我还没有得到它们.有人可以解释为什么我应该兴奋吗?
我正在尝试在Delphi 2009中自动构建项目.
我正在使用带有.net 3.5的msbuild
我只是打电话给:
Z:\Server>C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild "BestSellerAppServer.g
roupproj" /target:Build
Run Code Online (Sandbox Code Playgroud)
得到这个:
Build started 27/08/2009 01:15:45 p.m..
Project "Z:\Server\BestSellerAppServer.groupproj" on node 0 (Build target(s)).
Project "Z:\Server\BestSellerAppServer.groupproj" (1) is building "Z:\Server\Be
stSellerAppServer.dproj" (2) on node 0 (default targets).
Z:\Server\BestSellerAppServer.dproj : error MSB4040: There is no target in the
project.
Done Building Project "Z:\Server\BestSellerAppServer.dproj" (default targets) -
- FAILED.
Done Building Project "Z:\Server\BestSellerAppServer.groupproj" (Build target(s
)) -- FAILED.
Build FAILED.
"Z:\Server\BestSellerAppServer.groupproj" (Build target) (1) ->
"Z:\Server\BestSellerAppServer.dproj" (default target) (2) ->
Z:\Server\BestSellerAppServer.dproj : error MSB4040: …
Run Code Online (Sandbox Code Playgroud) 什么是评估数学表达式的最佳算法?我希望能够优化这一点,因为我可能有一个带有各种变量的公式,我可能需要使用不同的变量评估数百次.所以基本上如果我可以最初解析公式以便以某种方式对其进行优化,然后我可以根据需要将变量传递给此优化版本,每次为我生成结果.
我将用Delphi或C#编写这个.我已经通过使用分流码算法编写了类似的东西,但每次我需要计算相同的公式时,我必须经历解析阶段.必须有更好的方法来做到这一点.
我正在使用MSBuild生成构建,并在命令行上构建在dproj中设置的配置.令人不安的是,这样生成的可执行文件的大小与IDE构建产生的不同(不是很多,但仍然!).有什么想法吗?我会想到使用相同的编译器?
我想在Delphi中创建一个单例.我在使用旧版本的Delphi之前完成了这个,最后使用全局变量(在实现部分中)并使用初始化和终结来处理实例.此外,无法阻止用户创建实例,因为您无法隐藏标准构造函数.我想知道是否有任何新的功能,如类构造函数和析构函数,以及类变量(好的,不是那么新),也许是泛型,可以帮助创建一个通用的单例类.我还没有设法让我感到满意.
我正在尝试设置免注册COM,但有一个小问题,我可能是另一个COM对象客户端.
App.exe -----> COM服务器/客户端DLL(已注册与否)--------> COM服务器DLL(未注册)
我的问题是,是否可以为第二个dll(COM服务器/客户端DLL)创建清单?我无法控制可执行文件,但如果我这样做,如果我为可执行文件创建客户端清单并为COM服务器dll创建服务器清单,则此方法有效.
这是中间dll的清单文件.我尝试嵌入它并在外部尝试它.仍然无法正常工作.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="COMCliSer.dll"
version="1.0.0.0"
/>
<dependency>
<dependentAssembly>
<assemblyIdentity
name="COMSer.dll"
version="1.0.0.0"
/>
</dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)
在进一步的调查中,只要中间dll也是免费注册并且exe有一个应用程序清单,我就可以全部工作.一旦我注册了中间的dll,并删除了应用程序清单(我无法控制exe将使用我的dll),整个过程就停止了.
如果exe没有清单,那么不会考虑dll的清单.我可以通过设置一切工作来证明这一点.然后在程序集清单中输入错误.这会弹出通常的消息:
无法创建进程:此应用程序无法启动,因为应用程序配置不正确.重新安装应用程序可能会解决此问题.
如果我然后删除应用程序清单,则应用程序加载(尽管CoCreateInstance失败,因为不考虑依赖关系)
我有一个创建和销毁数千个对象的应用程序.值得缓存和重用对象,还是Delphi的内存管理器足够快,多次创建和销毁对象并不是一个很大的开销(而不是跟踪缓存)当我说值得,当然我在寻找为了提高性能.
作为Pascal和Delphi很长一段时间的开发人员,我总是将我的开头和结尾排成一行:
begin
if x = y then
begin
...
...
end
else
for i := 0 to 20 do
begin
...
...
end;
end;
Run Code Online (Sandbox Code Playgroud)
让我疯狂的是代码格式化:
begin
if x = y then begin
...
...
end
else
for i := 0 to 20 do begin
...
...
end;
end;
Run Code Online (Sandbox Code Playgroud)
当有几个级别的复合语句时,我发现这很难读.上面的代码是可以的,因为它并不复杂,但为了保持一致性,我更喜欢所有开始和结束对齐.
当我开始使用c#时,我发现自己也在对齐花括号.C#世界的常态是什么?
编辑:
有人指出,这是一个不应该在SO上提出的问题.我不明白为什么不.我正在设置编码指南文档.我知道我会对某些事情产生一些阻力,我希望能在这里得到一些答案,所以我可以随时准备迎接这种阻力.
delphi ×8
algorithm ×2
c# ×2
delphi-2009 ×2
msbuild ×2
closures ×1
coding-style ×1
com ×1
installation ×1
list ×1
manifest ×1
math ×1
parsing ×1
registration ×1
singleton ×1
sorting ×1