小编pro*_*ach的帖子

C#获取非托管dll的版本

我从托管的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的版本?

理查德,提前谢谢

c# unmanagedresources

2
推荐指数
1
解决办法
2547
查看次数

c#currency combobox

我想为我的应用程序创建一个Currency ComboBox(下拉列表)控件,并且如果有人有一种巧妙的方式将它们放入数组中,那么我会在RegionInfo对象中存在作为属性的货币.

干杯,

理查德

c#

2
推荐指数
1
解决办法
1341
查看次数

sql查询人工创建行

我有一段代码可以在各种数据库上运行.它只是运行一个可配置的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)(逗号分隔表中的不同列)

sql

2
推荐指数
1
解决办法
958
查看次数

始终运行的Windows程序

我要求必须始终运行在用户空间(而不是服务)中运行的Windows Forms C#.NET 2.0程序.由于我不是万无一失并且犯了编码错误,我想知道我可以使用哪些额外的保护措施来确保满足这一要求.我一直在考虑的事情是TaskScheduler每5分钟检查一次,一个存根观察者或一个二级进程.这些好/坏的想法?

谢谢,理查德

编辑:我没有使用服务的原因(明显和明智的答案!)是程序在自助服务终端类型的环境中运行,并有一个沉重的GUI组件.Windows 2000 - W7上的服务选项无法正常运行.

编辑:不使用服务的第二个原因是应用程序需要互联网访问,并且在我们的一些客户站点上,代理设置为仅允许特定用户(而不是本地系统帐户),因此如果多个确保访问将是棘手的用户登录到计算机.

c# windows

2
推荐指数
1
解决办法
2793
查看次数

确保所有线程在c#集成测试后停止

在我的一些集成测试中,我启动多个线程,并希望确保在集成测试完成时(即使它失败),线程将被清除.谁能推荐一种优雅的方式来做到这一点?

谢谢

编辑:感谢大家的答案 - 只是为了澄清,'清理'是指测试线程何时停止并且测试中的其他一些线程没有QTAgent(测试过程)发出错误.

c# multithreading integration-testing

2
推荐指数
1
解决办法
241
查看次数

c#事件处理程序被添加两次

这是一个虚构的例子,但是我在游荡如果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)

我打算用下面来防止这种情况发生

是否已添加事件处理程序?

谢谢,理查德

c# timer event-handling

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

替换字符串中的最后一个匹配项

我正在玩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)

ruby

1
推荐指数
2
解决办法
2954
查看次数

如何在ruby Singleton中初始化实例变量?

我有一个使用Singleton模式的ruby类.我想在创建类(即调用实例)后立即初始化实例变量.这是最好的去处?

require 'singleton'

class SingletonTest
  include Singleton
  @my_var # where / how should I initialize this
end
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby

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

基本的haskell程序,用于在文件中查找字符串

这是我的第一次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)

这是正确的方法,如果没有,那么正确的方法是什么?

谢谢

haskell

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

EnumJobs返回与Marshal.SizeOF不同的JOB_INFO_1大小

我从托管代码(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)

c# windows print-spooler-api

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