我从托管的c#代码中调用了一个非托管的dll,并想检查我是否正在调用正确的版本.
我正在尝试加载程序集(然后获取资源文件然后获取版本)的代码是:cur_version = Assembly.LoadFile("X:\ Workspace\yreceipts_pos\yRprintProcessor\Debug\yRprintProcessor.dll"); 由于这个错误,它失败了:
The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)
有没有人知道如何解决这个问题或有更好的方法从托管c#代码检查非托管DLL的版本?
理查德,提前谢谢
我想为我的应用程序创建一个Currency ComboBox(下拉列表)控件,并且如果有人有一种巧妙的方式将它们放入数组中,那么我会在RegionInfo对象中存在作为属性的货币.
干杯,
理查德
我有一段代码可以在各种数据库上运行.它只是运行一个可配置的SQL查询,它返回许多行.从每一行,我拉一些文本和一个数字来创建一个新对象.我们最新的客户决定将所有文本编号组合放在数据库的单行中,即
text_1, num_1, text_2, num_2, text_3, num_3
Run Code Online (Sandbox Code Playgroud)
有一种聪明的方式我可以查询这个返回
text_1,num_1
text_2,num_2
text_3,num_3
Run Code Online (Sandbox Code Playgroud)
这样我就不必重新编写该客户端的部分代码了.
编辑:(不同的数据库意味着不同的RDBMS)(逗号分隔表中的不同列)
我要求必须始终运行在用户空间(而不是服务)中运行的Windows Forms C#.NET 2.0程序.由于我不是万无一失并且犯了编码错误,我想知道我可以使用哪些额外的保护措施来确保满足这一要求.我一直在考虑的事情是TaskScheduler每5分钟检查一次,一个存根观察者或一个二级进程.这些好/坏的想法?
谢谢,理查德
编辑:我没有使用服务的原因(明显和明智的答案!)是程序在自助服务终端类型的环境中运行,并有一个沉重的GUI组件.Windows 2000 - W7上的服务选项无法正常运行.
编辑:不使用服务的第二个原因是应用程序需要互联网访问,并且在我们的一些客户站点上,代理设置为仅允许特定用户(而不是本地系统帐户),因此如果多个确保访问将是棘手的用户登录到计算机.
在我的一些集成测试中,我启动多个线程,并希望确保在集成测试完成时(即使它失败),线程将被清除.谁能推荐一种优雅的方式来做到这一点?
谢谢
编辑:感谢大家的答案 - 只是为了澄清,'清理'是指测试线程何时停止并且测试中的其他一些线程没有QTAgent(测试过程)发出错误.
这是一个虚构的例子,但是我在游荡如果InitialiseTimer函数被调用两次会发生什么.计时器已用完的功能是否被触发两次.如果函数是静态的,这会改变吗?
private static void InitialiseTimer()
{
TheTimer = new System.Timers.Timer();
TheTimer.Interval = 400;
TheTimer.Elapsed += new ElapsedEventHandler(TheTimer_Elapsed);
TheTimer.AutoReset = false;
}
public void TheTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//Do stuff in here
}
Run Code Online (Sandbox Code Playgroud)
我打算用下面来防止这种情况发生
谢谢,理查德
我正在玩Ruby,为我做一些文件版本控制.我有一个字符串2.0.0.65.我将其拆分,增加内部版本号(65 - > 66),然后我想用66替换65.虽然在这个替换中,我只想替换字符串的最后一个匹配.Ruby中最好的方法是什么?
version_text = IO.read('C:\\Properties')
puts version_text
version = version_text.match(/(\d+\.\d+\.\d+\.\d+)/)[1]
puts version
build_version = version.split('.')[3]
puts build_version
incremented_version = build_version.to_i + 1
puts incremented_version`
...
Run Code Online (Sandbox Code Playgroud) 我有一个使用Singleton模式的ruby类.我想在创建类(即调用实例)后立即初始化实例变量.这是最好的去处?
require 'singleton'
class SingletonTest
include Singleton
@my_var # where / how should I initialize this
end
Run Code Online (Sandbox Code Playgroud)
谢谢
这是我的第一次Haskell尝试,所以我的理解相当有限.我想编写一个非常基本的程序来检查文件是否包含该单词ERROR.我想出了以下内容,当然甚至都没有编译.
import Text.Regex.Posix
containsErrorString :: String -> Bool
containsErrorString x = x =~ "ERROR" :: Bool
fileContainsErrorString fileName = do
s <- readFile fileName
containsErrorString s
Run Code Online (Sandbox Code Playgroud)
这是正确的方法,如果没有,那么正确的方法是什么?
谢谢
我从托管代码(C#)调用Win32函数EnumJobs(http://msdn.microsoft.com/en-us/library/windows/desktop/dd162625 (v=vs.85 ) .aspx ).
[DllImport("Winspool.drv", SetLastError = true, EntryPoint = "EnumJobsA")]
public static extern bool EnumJobs(
IntPtr hPrinter, // handle to printer object
UInt32 FirstJob, // index of first job
UInt32 NoJobs, // number of jobs to enumerate
UInt32 Level, // information level
IntPtr pJob, // job information buffer
UInt32 cbBuf, // size of job information buffer
out UInt32 pcbNeeded, // bytes received or required
out UInt32 pcReturned // number of jobs received
);
EnumJobs(_printerHandle, 0, 99, 1, …Run Code Online (Sandbox Code Playgroud)