小编Dav*_*own的帖子

"即使平台相同,也试图加载格式不正确的程序"

我在64位系统上调用32位非托管DLL的函数.我得到的是:

BadImageFormatException:尝试加载格式不正确的程序.(HRESULT异常:0x8007000B)

起初,我将我的项目设置为Any CPU平台,因此我将它们都更改为x86,但此错误仍在发生.这真的是我所知道的唯一解决方案.

DLL没有损坏或任何东西,因为我可以将它们与其他程序一起使用(我没有源代码).我想也许它没有找到依赖,但我检查了,他们都在那里.另外,DllNotFoundException在这种情况下不会抛出一个吗?

我还可以做些什么?在您说"使用64位非托管DLL"之前,让我指出没有一个.;)

.net 64-bit pinvoke 32-bit badimageformatexception

448
推荐指数
11
解决办法
46万
查看次数

使用LINQ查询DataColumnCollection

我正在尝试在DataTable的Columns属性上执行简单的LINQ查询:

from c in myDataTable.Columns.AsQueryable()
    select c.ColumnName
Run Code Online (Sandbox Code Playgroud)

但是,我得到的是:

无法找到源类型"System.Linq.IQueryable"的查询模式的实现.找不到"选择".考虑明确指定范围变量'c'的类型.

如何让DataColumnCollection与LINQ一起玩得很好?

c# linq datatable asqueryable datacolumncollection

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

是否可以根据文本结构猜测用户的心情?

我假设需要使用自然语言处理器来解析文本本身,但是对于算法根据他们编写的文本检测用户心情有什么建议?我怀疑它会非常准确,但我仍然感兴趣.

编辑:我绝不是语言学或自然语言处理方面的专家,所以如果这个问题太笼统或太愚蠢我会道歉.

algorithm nlp

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

加密许可证文件的有效方法?

对于Web应用程序,我想创建一个简单但有效的许可系统.在C#中,这有点困难,因为任何安装了Reflector的人都可以查看我的解密方法.

有哪些方法可以加密C#中相当防篡改的文件?

c# encryption cryptography

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

libc ++ vs libstdc ++ std :: is_move_assignable:哪个最正确?

我正在尝试通过阅读C++ 14标准以及libc ++和libstdc ++的源代码来更深入地理解C++.type_traits两者之间的各种项目的实施情况各不相同,特别是is_move_assignable,我试图弄清楚哪些项目"更正确".

的libc ++:

template <class _Tp> struct is_move_assignable
    : public is_assignable<typename add_lvalue_reference<_Tp>::type,
                           const typename add_rvalue_reference<_Tp>::type> {};
Run Code Online (Sandbox Code Playgroud)

的libstdc ++:

template<typename _Tp, bool = __is_referenceable<_Tp>::value>
  struct __is_move_assignable_impl;

template<typename _Tp>
  struct __is_move_assignable_impl<_Tp, false>
  : public false_type { };

template<typename _Tp>
  struct __is_move_assignable_impl<_Tp, true>
  : public is_assignable<_Tp&, _Tp&&>
  { };

template<typename _Tp>
  struct is_move_assignable
  : public __is_move_assignable_impl<_Tp>
  { };
Run Code Online (Sandbox Code Playgroud)

标准规定:

对于可引用类型T,结果与is_assignable<T&, T&&>::value否则相同false.

我注意到的第一件事是libc ++适用const于第二个模板参数,这似乎不正确,因为移动赋值运算符采用非const rvalue.libstdc ++也使用__is_referenceable,遵循标准的措辞,但libc ++没有.是通过规定的libc …

c++ libstdc++ c++11 libc++ c++14

17
推荐指数
3
解决办法
874
查看次数

单元测试HttpApplication

我有一个派生自HttpApplication的类,它增加了一些额外的功能.我需要对这些功能进行单元测试,这意味着我必须能够创建HttpApplication的新实例,伪造请求并检索响应对象.

我究竟如何对HttpApplication对象进行单元测试?我现在正在使用Moq,但我不知道如何设置所需的模拟对象.

c# asp.net unit-testing moq httpapplication

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

使用WPF构建高度模块化的业务应用程序?

我正在充实我的脑海中的WPF业务应用程序,引起我兴趣的一件事是我应该如何处理它令人难以置信的模块化.例如,我的主应用程序将简单地包含启动接口,加载模块,连接到服务器等的基础知识.这些模块以类库的形式包含它们自己的逻辑和WPF窗口.模块可以定义自己的资源字典,并且可以从主应用程序的资源字典中获取常用画笔等.

实现这种性质的系统的最佳方法是什么?如何构建主界面以使其加载的模块几乎可以改变其用户界面和逻辑的任何方面?

我意识到这是一个相当模糊的问题,但我只是在寻找一般的输入和头脑风暴.

谢谢!

c# wpf add-in module

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

如何将位转换为字节?

我有一个128个布尔数组,代表位.如何将这128位表示转换为16字节?

例:

我有一个看起来像这样的数组:

0110001100110000100010111011001011010011010001010001101101001100
1000010000000000001000111111111101000011111001111011111011111001
Run Code Online (Sandbox Code Playgroud)

(转换为1和0更简洁)

我需要将这些位转换为以下字节数组:

99 48 139 178 211 69 27 76 132 0 35 255 67 231 190 249
Run Code Online (Sandbox Code Playgroud)

编辑:这似乎不起作用:

public byte[] ToByteArray() {
    int numBytes = Count / 8;

    if (_bits.Count % 8 != 0) numBytes++;

    byte[] bytes = new byte[numBytes];

    int byteIndex = 0, bitIndex = 0;

    for (int i = 0; i < _bits.Count; i++) {
        if (_bits[i])
            bytes[byteIndex] |= (byte)(1 << bitIndex);

        bitIndex++;
        if (bitIndex == 8) {
            bitIndex = 0;
            byteIndex++; …
Run Code Online (Sandbox Code Playgroud)

c# byte bit-manipulation

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

即使与libole32链接,外部库中的未定义OLE引用也是如此

使用MINGW,我试图将我的C代码链接到执行一些OLE操作的静态C++库:

mingw32-gcc main.o resources.o -o mbcom.exe -L../../Lib/Iup -liup -liupole -lole32 -lcomctl32 -lstdc++ -mwindows
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了这个:

../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x341): undefined reference to `IID_IOleControl'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x9b0): undefined reference to `IID_IViewObject2'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xcb5): undefined reference to `IID_IUnknown'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xce8): undefined reference to `IID_IPersistStorage'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xd1b): undefined reference to `IID_IOleObject'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xd9d): undefined reference to `IID_IUnknown'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xdbf): undefined reference to `IID_IOleClientSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xde1): undefined reference to `IID_IOleWindow'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe03): undefined reference to `IID_IOleControlSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe25): undefined reference to `IID_IDispatch'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe51): undefined reference to `IID_IOleInPlaceSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x1129): undefined reference to `GUID_NULL'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x124d): undefined reference to `GUID_NULL'
../../Lib/Iup/libiupole.a(tOleInPlaceSite.o):tOleInPlaceSite.cpp:(.text+0xc8): …
Run Code Online (Sandbox Code Playgroud)

c c++ ole mingw undefined-reference

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

匹配版本号部分与正则表达式

我正在尝试使用C#正则表达式匹配版本号(Major.Minor.Build.Revision)的各个部分.但是,我对编写Regex很新,甚至使用Expresso也证明有点困难.现在,我有这个:

(?<Major>\d*)\.(?<Minor>\d*)\.(?<Build>\d*)\.(?<Revision>\d*)
Run Code Online (Sandbox Code Playgroud)

这有效,但要求版本号的每个部分都存在.我想做的还是匹配版本,如:

2.13
Run Code Online (Sandbox Code Playgroud)

在这种情况下,构建和修订组需要返回空值.如果我认为这一切都错了,请随意提出一个更好的方法.

c# regex version

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