问题列表 - 第22908页

C API函数回调到C++成员函数代码中

所以,我正在使用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++对象的实例成员函数(不是静态函数).它会更顺畅.

c c++ fmod static-functions

10
推荐指数
2
解决办法
6114
查看次数

分析图像复杂性

有没有可用于分析图像复杂性的算法?基本上我正在编写一个Perl脚本,它将使用system()函数在后台启动MPlayer,为输入视频文件生成10到20个屏幕截图,我希望它能够丢弃任何简单的图像,如拍摄天空,或黑色背景,以及其他简单的图像,并保留其中3个具有最高复杂性或大多数颜色的图像.我可以用一个模块或单独的程序来实现这个目标吗?我猜也许Image :: Magick可以照顾这个.

perl imagemagick

6
推荐指数
1
解决办法
1553
查看次数

静态初始化块

据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.

但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.

为什么我们需要在一个特殊的块这样的行这样的:static {...}

java static initialization static-block initialization-block

252
推荐指数
8
解决办法
19万
查看次数

T-SQL表变量创建物理表!

我的天啊!我究竟做错了什么?

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.[]的意义是什么?

我需要认真的帮助.我失去了我的心灵!

提前致谢.

sql t-sql sql-server

4
推荐指数
1
解决办法
1285
查看次数

搜索字符串,允许在字符串的任何位置发生一次不匹配

我正在使用长度为25的DNA序列(参见下面的例子).我有一个230,000的清单,需要寻找整个基因组中的每个序列(弓形虫寄生虫).我不确定基因组有多大,但比230,000个序列长得多.

我需要查找每个25个字符的序列,例如,(AGCCTCCCATGATTGAACAGATCAT).

基因组被格式化为连续的字符串,即(CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT ....)

我不关心它被发现的地点和次数,只关注它是否存在.
我认为这很简单 -

str.find(AGCCTCCCATGATTGAACAGATCAT)
Run Code Online (Sandbox Code Playgroud)

但我还要找到在任何位置定义为错误(不匹配)的近距离匹配,但只有一个位置,并记录序列中的位置.我不知道怎么做到这一点.我唯一能想到的是使用通配符并在每个位置使用通配符执行搜索.即,搜索25次.

例如,
AGCCTCCCATGATTGAACAGATCAT
AGCCTCCCATGATAGAACAGATCAT

与位置13处的不匹配密切匹配.

速度不是一个大问题,因为我只做了3次,但如果它很快就会很好.

有些程序可以执行此操作 - 查找匹配项和部分匹配项 - 但我正在寻找一种使用这些应用程序无法发现的部分匹配项.

这是perl的类似帖子,虽然它们只是比较序列而不是搜索连续的字符串:

相关文章

python string pattern-matching string-matching dna-sequence

23
推荐指数
3
解决办法
2万
查看次数

"读取"POD预增量结果不会产生未定义的行为.为什么呢?

这是一个愚蠢的问题.:)

[编辑:愚蠢与否,这结果是一个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).

那么,上面的错误在哪里?

[更新,针对没有经验丰富的序列点律师:)]

换句话说,问题是:

  1. 似乎存在"竞争"是否首先发生l值到r值转换("读取")或增量("写入")副作用.

  2. 在C中,根据JTC1/SC22/WG14 N926"序列点分析"*,将给出UB(参见,例如,实施例5 :)int x,y; (x=y) + x; // UB.

  3. 注意,这不会是一个的情况下应后增由于被使用(3)和(4)将构成一个单一的 [(3):以"A" …

c c++ standards language-lawyer

7
推荐指数
1
解决办法
352
查看次数

如何在 Django Admin 中只折叠一个字段?

django admin 允许您指定 fieldsets。您可以正确构建一个将不同字段组合在一起的元组。您还可以为某些字段组指定类。其中一个类是collapse,它将字段隐藏在可折叠区域下。这有利于隐藏很少使用或高级的字段以保持 UI 干净。

但是,我有一种情况,我只想在许多不同的应用程序中隐藏一个单独的字段。为了在每个 admin.py 文件中创建完整的字段集规范,只需将一个字段放入折叠区域,这将需要大量输入。它还造成了维护困难的情况,因为我每次编辑关联模型时都必须编辑字段集。

我可以使用exclude 选项轻松地完全排除该字段。我想要类似的东西来崩溃。这可能吗?

python django django-admin

5
推荐指数
1
解决办法
3620
查看次数

如何抽象NHibernate以避免紧密依赖并促进测试

是否可以采用像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可能会导致大部分代码被替换.

人们在现实世界中做了什么?

testing nhibernate abstraction

3
推荐指数
1
解决办法
771
查看次数

Joda DateTime的异常结果为01.04.1893

我的时区是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将部分偏移移动到分钟和秒.

java jodatime

5
推荐指数
1
解决办法
1520
查看次数

LINQ用空字符串替换DBNull

在这个例子中,产生一个错误,如果任一row.FirstNamerow.LastNameNULL.

如何重写该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)由于引用了所有参数,因此无法工作.

linq vb.net null dbnull

4
推荐指数
1
解决办法
4043
查看次数