在我看来,大多数人在使用NHibernate时会针对像SQLite这样的内存中进程数据库编写测试.我已经启动并运行了,但我的第一个测试(使用NHibernate)总是需要3-4秒才能执行.下一个测试运行得更快.
我使用FluentNhibernate进行映射,但使用XML映射文件获得大致相同的时序.对我而言,3-4秒的延迟严重扰乱了我的流量.
推荐使用TDD和NHibernate的方式是什么?
是否可以模拟ISession对实际查询进行单元测试,还是只能在内存数据库中完成?
我在VS 2005中为本机Win32 /非托管C++创建了一个DLL项目,称之为myProj.dll.这取决于第三方商业DLL,而后者依赖于msvcr90.dll(我假设它是从VS 2008项目构建的).我将其称为thirdParty.dll.
我的DLL项目在VS2005中构建得很好.我已经构建了一个链接到myProj.lib的测试应用程序(同样,VS 2005 Win32 C++).(顺便说一下,根据.lib的小尺寸来判断,并且在运行时,应用程序必须找到myProj.dll,我猜测.lib只是一个调用的包装器. loadLibrary()加载实际的DLL;是关闭吗?)
我的问题是,在运行时,测试应用程序无法找到msvcr90.dll(也不是msvcp90.dll),其依赖性来自thirdParty.dll.
我已经安装了Microsoft的redist包,所以在c:\ WINDOWS\WinSxS\x86_Microsoft.VC90.CRT _...中安装了所有std(9.0)C++库.更重要的是,如果我将依赖性walker指向thirdParty.dll,它会愉快地解析对该位置的引用.
但是,如果我将depends.exe指向我的测试应用程序(.exe)或myProj.dll,则找不到msvcr90.dll和msvcp90.dll.
我猜我需要在VS2005中配置一些东西,以便.exe或myProj.dll知道std C++库的9.0版本的位置(可能是redist包在C:\ WINDOWS\WinSxS中安装它们的位置) ),但我似乎无法弄清楚它是什么.我是在正确的轨道上吗?
我注意到,如果我只是将msvc*90.dll文件复制到我的app目录,那么依赖项就解决了,但是我得到了关于std c ++ DLL等的不正确加载的运行时错误.
非常感谢提前.
我在Oracles文档中看到了相互矛盾的引用.FLOAT中的小数与数据库中的NUMBER类型之间的存储方式有何不同?
正如我从C等人那里回忆的那样,浮点数具有int没有的精度限制.Rg,对于'浮点数,0.1(基数10)近似为0.110011001100110011001101(基数2),其等于0.100000001490116119384765625(基数10).但是,对于'int',5(Base 10)正好是101(Base 2).
这就是为什么以下内容不会像C中预期的那样终止:
float i;
i = 0;
for (i=0; i != 10; )
{
i += 0.1
}
Run Code Online (Sandbox Code Playgroud)
但是我在Oracle文档的其他地方看到FLOAT已被定义为NUMBER.据我所知,Oracle的NUMBER类型的实现并没有遇到与C的浮点相同的问题.
那么,这里的真实故事是什么?Oracle是否偏离了我对浮动/ FLOATs的期望?
(我确信这对于我将要使用它们的方式来说是一个惊人的屁股,但我知道如果0.1*10出现在1.00000000000000001,我将会有问题)
我需要PostgreSQL的功能性OleDB数据提供程序.它应该类似于MySQL的ODBC提供程序.请参阅http://dev.mysql.com/downloads/connector/odbc/5.1.html
我一直在尝试运行一个jar文件 - 让我们称之为test.jar - 它在Unix系统上使用Sybase jconn3.jar.
我创建了一个MANIFEST.MF文件,其中包含以下内容:
Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
Run Code Online (Sandbox Code Playgroud)
这给出了一个ClassNotFoundError.$ SYBASE是指向/ opt/sybase13的系统变量; 我也尝试过以下方法:
Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
Run Code Online (Sandbox Code Playgroud)
和
Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
Run Code Online (Sandbox Code Playgroud)
但是,如果我将jconn3.jar文件从$ SYBASE/jConnect-6_0/classes复制到test.jar所在的目录,并将我的MANIFEST.MF更新为如下所示:
Class-Path: jconn3.jar commons-net-1.3.0.jar
Run Code Online (Sandbox Code Playgroud)
应用程序按预期运行.
现在,我已经能够通过在本地复制它来验证jconn3.jar文件的工作原理; 我的MANIFEST.MF文件包含我的Main-Class的路径,所以这里没有问题.
您认为这可能是什么问题?我一直在看这个东西太久了.谢谢!
假设我想从发布分支合并到主分支,并且在发布分支中有一些我不希望包含在主分支中的提交.有没有办法进行合并,以便一个或多个提交不会合并?
到目前为止,我的策略是执行以下操作(在掌握中):
git merge --no-commit release-branch
# Resolve conflicts and apply reverse patch of the commits that I don't want included
git commit # Edit commit message so that it lists the commits that have been reverse-patched
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
我不明白GCC在Linux下如何运作.在源文件中,当我执行以下操作时:
#include <math.h>
Run Code Online (Sandbox Code Playgroud)
编译器是否提取适当的二进制代码并将其插入到已编译的可执行文件中,或者编译器是否插入对外部二进制文件的引用(a-la Windows DLL?)
我想这个问题的通用版本是:在*nix下有没有与Windows DLL相同的概念?
我使用语音识别来指示SQL,并且排除事情是一种痛苦.如果我能看到标签停在何处,它将为我节省大量时间.
这是一个漫长的假期周末,所以我再次得到了编码错误并开始玩游戏:
马里奥http://gfilter.net/junk/tileengine.jpg
我写了一个基本的瓦片引擎,但之前从未尝试过这个,我真的很难处理精灵碰撞检测并实现重力的真实物理.
对于任何其他游戏爱好作家,你能指出一些关于最佳方法的演练吗?
更新:
我以为我会分享进度报告:
http://www.youtube.com/watch?v=-RKNQ2UiiLY < - 游戏在行动中
它仍然是真正的马车,但碰撞检测主要是工作,我已经开始研究其他一些功能(如碰撞块(注意错误)和与敌人交互).
马里奥仍像他在月球上走路一样,我正在使用这些常数,有什么建议可以调整它们以获得更真实的效果吗?
const float AirDrag = 1.00f;
const float GroundFriction = .97f;
const float Gravity = 0.8f;
Run Code Online (Sandbox Code Playgroud) c++ ×2
browser ×1
c# ×1
classpath ×1
dll ×1
fixed-point ×1
gcc ×1
git ×1
java ×1
linux ×1
manifest.mf ×1
nhibernate ×1
numbers ×1
oledb ×1
oracle ×1
physics ×1
postgresql ×1
sql ×1
sql-server ×1
ssms ×1
system ×1
tdd ×1
tile-engine ×1
types ×1
unit-testing ×1
unix ×1
variables ×1