所以,我正在使用FMOD api,它确实是一个C api.
不是那个坏或什么的.它只是它与C++代码没有良好的接口.
例如,使用
FMOD_Channel_SetCallback( channel, callbackFunc ) ;
Run Code Online (Sandbox Code Playgroud)
它想要一个C风格的函数callbackFunc,但我想传递一个类的成员函数.
我最终使用Win32技巧,使成员函数静态.然后它作为FMOD的回调.
现在我必须破解我的代码以使一些成员静态,只是为了解释FMOD的C-ness.
我想知道它是否可能在FMOD中或者是否有解决方法将回调链接到特定C++对象的实例成员函数(不是静态函数).它会更顺畅.
有没有可用于分析图像复杂性的算法?基本上我正在编写一个Perl脚本,它将使用system()函数在后台启动MPlayer,为输入视频文件生成10到20个屏幕截图,我希望它能够丢弃任何简单的图像,如拍摄天空,或黑色背景,以及其他简单的图像,并保留其中3个具有最高复杂性或大多数颜色的图像.我可以用一个模块或单独的程序来实现这个目标吗?我猜也许Image :: Magick可以照顾这个.
据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.
但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.
为什么我们需要在一个特殊的块这样的行这样的:static {...}?
java static initialization static-block initialization-block
我的天啊!我究竟做错了什么?
declare @WTF TABLE (
OrderItemId int
)
SELECT TOP 20 OrderItemId as OrderItemId INTO [@WTF] FROM ac_OrderItems
SELECT * FROM [@WTF]
Run Code Online (Sandbox Code Playgroud)
问题A:这会创建一个名为@WTF的PHYSICAL表.为什么??我以为这只是在记忆中?!
问题B:最后一行代码,如果我从@WTF中选择*...没有[],则返回NOTHING.[]的意义是什么?
我需要认真的帮助.我失去了我的心灵!
提前致谢.
我正在使用长度为25的DNA序列(参见下面的例子).我有一个230,000的清单,需要寻找整个基因组中的每个序列(弓形虫寄生虫).我不确定基因组有多大,但比230,000个序列长得多.
我需要查找每个25个字符的序列,例如,(AGCCTCCCATGATTGAACAGATCAT).
基因组被格式化为连续的字符串,即(CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT ....)
我不关心它被发现的地点和次数,只关注它是否存在.
我认为这很简单 -
str.find(AGCCTCCCATGATTGAACAGATCAT)
Run Code Online (Sandbox Code Playgroud)
但我还要找到在任何位置定义为错误(不匹配)的近距离匹配,但只有一个位置,并记录序列中的位置.我不知道怎么做到这一点.我唯一能想到的是使用通配符并在每个位置使用通配符执行搜索.即,搜索25次.
例如,
AGCCTCCCATGATTGAACAGATCAT
AGCCTCCCATGATAGAACAGATCAT
与位置13处的不匹配密切匹配.
速度不是一个大问题,因为我只做了3次,但如果它很快就会很好.
有些程序可以执行此操作 - 查找匹配项和部分匹配项 - 但我正在寻找一种使用这些应用程序无法发现的部分匹配项.
这是perl的类似帖子,虽然它们只是比较序列而不是搜索连续的字符串:
这是一个愚蠢的问题.:)
[编辑:愚蠢与否,这结果是一个C++特殊问题,请参阅UPDATE_2]
假设我们有:
int a = 0; // line 1
int b = ++a; // line 2
Run Code Online (Sandbox Code Playgroud)
第2行发生的事情是(注意,数字只是标记,不指定确切的顺序):
= [1: write result of (3) to result of (2)]
/\
[2: take "b" l-value] [3: convert result of (4) to an r-value ]
|
[4: take "a" l-value, "increment" and return it]
Run Code Online (Sandbox Code Playgroud)
(4)中的"写入"在(3)中的"读取"之前是"有序"的,并且由于之间没有序列点,所以不能保证在(3)之前发生副作用(还有"读"inside(4)本身,但在 "write" 之前订购,这样就不会产生UB).
那么,上面的错误在哪里?
[更新,针对没有经验丰富的序列点律师:)]
换句话说,问题是:
似乎存在"竞争"是否首先发生l值到r值转换("读取")或增量("写入")副作用.
在C中,根据JTC1/SC22/WG14 N926"序列点分析"*,将给出UB(参见,例如,实施例5 :)int x,y; (x=y) + x; // UB.
注意,这不会是一个的情况下应后增由于被使用(3)和(4)将构成一个单一的 [(3):以"A" …
django admin 允许您指定 fieldsets。您可以正确构建一个将不同字段组合在一起的元组。您还可以为某些字段组指定类。其中一个类是collapse,它将字段隐藏在可折叠区域下。这有利于隐藏很少使用或高级的字段以保持 UI 干净。
但是,我有一种情况,我只想在许多不同的应用程序中隐藏一个单独的字段。为了在每个 admin.py 文件中创建完整的字段集规范,只需将一个字段放入折叠区域,这将需要大量输入。它还造成了维护困难的情况,因为我每次编辑关联模型时都必须编辑字段集。
我可以使用exclude 选项轻松地完全排除该字段。我想要类似的东西来崩溃。这可能吗?
是否可以采用像NHibernate或Entity Framework这样的O/RM,并以一种可以在遇到O/RM无法处理的情况时替换它的方式对其进行抽象.
使用大块服务方法创建服务似乎很诱人,其中创建会话,会话用于获取/ upsert实体,然后用于保存所有脏对象.
我会考虑存储库模式,以便服务操作向存储库请求实体,并且O/RM会话嵌入在存储库中.但是你如何保存相关实体,并且Update(T实体)方法会立即刷新更改.它似乎很简单,而且通常不令人满意.
我现在倾向于使用单个O/RM包装器类,它使用诸如"StartSession","EndSession","AbandonSession","GetById(object id)"等通用方法公开接口.
至少这将允许OR/M在测试中伪造,这是我的另一个大问题.
我想我是说我不想密切交织业务逻辑和O/RM数据访问代码,因为切换到另一个O/RM可能会导致大部分代码被替换.
人们在现实世界中做了什么?
我的时区是CET(柏林).
在测试Joda的DateTime时,我发现了一些奇怪的事情:
new DateTime(1893, 4, 1, 0, 0, 0, 0);
=> java.lang.IllegalArgumentException: Illegal instant due to time zone offset transition:
new DateTime(1893, 3, 31, 0, 0, 0, 0).toDate();
=> Fri Mar 31 00:06:32 CET 1893
Run Code Online (Sandbox Code Playgroud)
时区的6分32秒移位导致时间不存在?
我必须说这是非常意外的,因为我没有指定任何时区信息,因此不希望遇到这种问题.
如果在1893年3月CET(柏林)不存在 - 为什么不new DateTime(1893, 3, 31, 0, 0, 0, 0)选择与我指定的时间相匹配的时区(即0分0秒)?
有什么方法可以使用DateTime获得正确的时间?
- 编辑 -
问题似乎是toDate().我在发布问题之前编辑了它.
Joda本身实际上工作正常:
new DateTime(1893, 3, 31, 0, 0, 0, 0);
=> 1893-01-01T00:00:00.000+00:53:28
Run Code Online (Sandbox Code Playgroud)
只是转换为Date将部分偏移移动到分钟和秒.
在这个例子中,产生一个错误,如果任一row.FirstName或row.LastName是NULL.
如何重写该Select子句,将DBNull值转换为空字符串""?
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select row.FirstName, row.LastName
Run Code Online (Sandbox Code Playgroud)
注意:由于DataSet是强类型的.我可以使用row.isFirstNameNull(),但IIF(row.isFirstNameNull(), "", row.FirstName)由于引用了所有参数,因此无法工作.
c ×2
c++ ×2
java ×2
python ×2
abstraction ×1
dbnull ×1
django ×1
django-admin ×1
dna-sequence ×1
fmod ×1
imagemagick ×1
jodatime ×1
linq ×1
nhibernate ×1
null ×1
perl ×1
sql ×1
sql-server ×1
standards ×1
static ×1
static-block ×1
string ×1
t-sql ×1
testing ×1
vb.net ×1