我有一个命令行可执行文件,它可以改变我想从程序中使用的文件中的某些位.是否可以创建自己的可执行文件使用此工具并只分发一个可执行文件?
[编辑]澄清:
命令行工具采用偏移量和一些位,并在给定文件中更改此偏移处的位.所以我想为一个应用程序创建一个修补程序,将特定的位更改为一个特定的值,所以我能做的就是编写类似批处理文件的东西,但是我想创建一个执行它的可执行文件,即将工具嵌入到一个使用特定值调用它的包装器程序.
我可以在(windows)c\c ++中编写包装器,asm但是没有.net请.
我想在批处理文件中包装一个Perl单行程序.对于(平凡的)示例,在Unix shell中,我可以引用如下命令:
perl -e 'print localtime() . "\n"'
Run Code Online (Sandbox Code Playgroud)
但DOS使用这个有用的错误消息扼杀了它:
在-e第1行的EOF之前的任何地方都找不到字符串终结符"'".
在.bat文件中执行此操作的最佳方法是什么?
我有一个不可变的类,其中包含一些在构造函数执行期间设置的私有字段.我想对这个构造函数进行单元测试,但我不确定这种情况下的"最佳实践".
简单的例子
这个类在Assembly1中定义:
public class Class2Test
{
private readonly string _StringProperty;
public Class2Test()
{
_StringProperty = ConfigurationManager.AppSettings["stringProperty"];
}
}
Run Code Online (Sandbox Code Playgroud)
此类在Assembly2中定义:
[TestClass]
public class TestClass
{
[TestMethod]
public void Class2Test_Default_Constructor()
{
Class2Test x = new Class2Test();
//what do I assert to validate that the field was set properly?
}
}
Run Code Online (Sandbox Code Playgroud)
编辑1:我已经用一个潜在的解决方案回答了这个问题,但我不确定这是否是"正确的方法".因此,如果您认为自己有更好的想法,请发布.
这个例子不值得测试,但假设构造函数有一些更复杂的逻辑.是避免测试构造函数的最佳方法,只是假设它对类的方法的所有测试都有效吗?
编辑2:看起来我做的样本有点简单.我已经用更合理的情况更新了它.
已经有一段时间了,因为我不得不做任何类似HTML的代码Vim,但最近我又遇到了这个问题.说我写的很简单HTML:
<html><head><title>This is a title</title></head></html>
Run Code Online (Sandbox Code Playgroud)
如何快速写下title,head和html的结束标记?我觉得我在这里错过了一些非常简单的方法,不会让我一个接一个地写下它们.
当然,我可以使用CtrlP自动填充单个标签名称但是我的笔记本电脑键盘上的东西实际上是正确的括号和斜线.
我有以下程序:
~/test> cat test.cc
int main()
{
int i = 3;
int j = __sync_add_and_fetch(&i, 1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用运行在多CPU 64位Intel机器上的Linux上的GCC 4.2.2编译该程序:
~/test> uname --all
Linux doom 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:56:44 EST 2007 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
当我以64位模式编译程序时,它编译并链接正常:
~/test> /share/tools/gcc-4.2.2/bin/g++ test.cc
~/test>
Run Code Online (Sandbox Code Playgroud)
当我在32位模式下编译它时,我收到以下错误:
~/test> /share/tools/gcc-4.2.2/bin/g++ -m32 test.cc
/tmp/ccEVHGkB.o(.text+0x27): In function `main':
: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
~/test>
Run Code Online (Sandbox Code Playgroud)
虽然我永远不会在32位处理器上运行,但我确实需要一个32位可执行文件,所以我可以链接一些32位库.
我的两个问题是:
在32位模式下编译时,为什么会出现链接错误?
有没有办法让程序编译和链接,同时仍然能够与32位库链接?
在Sql Server 2000上,有没有办法找出上次执行存储过程的日期和时间?
我希望我的Python脚本能够在Vista上复制文件.当我从普通cmd.exe窗口运行它时,不会生成错误,但不会复制文件.如果我运行cmd.exe"作为管理员",然后运行我的脚本,它工作正常.
这是有道理的,因为用户帐户控制(UAC)通常会阻止许多文件系统操作.
有没有办法可以在Python脚本中调用UAC提升请求(这些对话框说"像这样的应用程序需要管理员访问权限,这样可以吗?")
如果那是不可能的,那么我的脚本是否有一种方法可以至少检测到它没有被提升以便它可以优雅地失败?
就变量命名约定而言,是应该命名迭代器i还是更像语义的东西count?如果你不使用i,为什么不呢?如果您认为这i是可以接受的,是否存在不应该使用迭代的情况?
我在ASP.Net应用程序中有一些C#代码,它执行此操作:
位图bmp =新位图(1184,1900);
偶尔会抛出异常"参数无效".现在我一直在谷歌上搜索,显然GDI +因为抛出随机异常而臭名昭着,很多人都遇到过这个问题,但没有人能解决它!我检查了系统,它有足够的RAM和交换空间.现在过去,如果我做了'iisreset'那么问题就会消失,但它会在几天内回来.但我不相信我已经造成了内存泄漏,因为正如我上面说的那样,有很多ram + swap free.
有人有任何解决方案?
已经发布了几个关于依赖注入的具体问题的问题,例如何时使用它以及它有哪些框架.然而,
什么是依赖注入以及何时/为什么应该或不应该使用它?
language-agnostic design-patterns dependency-injection terminology
c# ×2
asp.net ×1
assembly ×1
atomic ×1
autocomplete ×1
batch-file ×1
c++ ×1
coding-style ×1
command-line ×1
executable ×1
gcc ×1
html ×1
iterator ×1
linker ×1
perl ×1
python ×1
quotes ×1
sql-server ×1
terminology ×1
uac ×1
unit-testing ×1
variables ×1
vim ×1
windows ×1
xml ×1