实现手写输入(要支持X64)

黑娃 2017-03-10 10:13:21
如何在.NET上实现手写输入,最好是用WPF,并且要支持X64系统。很久以前做过一个需要引用IACore.dll的手写库,但是这个dll没有X64版本,无法在64位os上运行。
...全文
339 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilikeff8 2017-05-26
  • 打赏
  • 举报
回复
引用 5 楼 falcomavin 的回复:
[quote=引用 3 楼 sp1234 的回复:] 你的应用应该配置为 AnyCPU,而不是X64的。
既然结贴了,就说点any cpu 如是配置过,仍然不行的,以下MSIL就是AnyCPU的结果,运行报错: 所生成项目的处理器架构“MSIL”与引用“IAWinFX”的处理器架构“x86”不匹配。[/quote] ANYCPU和你编译的本机环境有关,如果你是64位的编译出来的exe就是64位的,而且只支持调用64位的DLL,而any cpu+首选32位打钩基本上等于选x86 另外,可以在程序里调用Environment.Is64BitProcess来查看当前程序进程是不是64位的
黑娃 2017-05-26
  • 打赏
  • 举报
回复
结贴了:试过进程间通信的思路,但是要把输入传到目标进程比较麻烦,因为提供手写识别的库是一个对象来采集输入的,如果不用这个库就没有这个对象去装它需要的输入了。既然不能分离到这一步,就考虑再分出去一些,把从输入捕捉到识别都用另一个exe去做,然后在用进程间通信的方式获取识别结果,虽然可行,但是总觉得有点不值得这么做,毕竟手写功能不是必须的,我不想把输入这个小模块整的这么另类的感觉,最后就放弃在X64手写了,自动识别系统,如果是x86才手写,否则屏蔽。
  • 打赏
  • 举报
回复
看起来有点小复杂
XBodhi. 2017-03-27
  • 打赏
  • 举报
回复
引用 14 楼 falcomavin 的回复:
[quote=引用 13 楼 qiaohuyue 的回复:] [quote=引用 9 楼 sp1234 的回复:] 如果你引用的组件只支持 X64,那么只好分为两个进程,独立运行,再通过进程通讯的方式来协同使用了。
这是个很好的解决方案,在楼主不想换的情况下。通过 args[] 指令过去来操作[/quote] 用进程间通讯的方式比较麻烦,要传出去识别的数据在一个对象里面,搞不清楚这个类怎么序列化传出去[/quote] 吧 进程对象挂载成静态对象,然后读取流的方式,或是用指令分支的方式,要不就只能自己动态控制了。很复杂。
黑娃 2017-03-22
  • 打赏
  • 举报
回复
引用 13 楼 qiaohuyue 的回复:
[quote=引用 9 楼 sp1234 的回复:] 如果你引用的组件只支持 X64,那么只好分为两个进程,独立运行,再通过进程通讯的方式来协同使用了。
这是个很好的解决方案,在楼主不想换的情况下。通过 args[] 指令过去来操作[/quote] 用进程间通讯的方式比较麻烦,要传出去识别的数据在一个对象里面,搞不清楚这个类怎么序列化传出去
Poopaye 2017-03-10
  • 打赏
  • 举报
回复
引用 2 楼 falcomavin 的回复:
[quote=引用 1 楼 shingoscar 的回复:] 32位程序可以运行在64位操作系统上
dll引用似乎不是这么回事,我在编译一个X64的项目里面引用了IACore.dll,编译时警告IACore.dll的CPU构架是X86,与我主工程的X64不匹配,当我运行到相关模块时会报错的。以下是原话: 所生成项目的处理器架构“X64”与引用“IACore”的处理器架构“x86”不匹配。[/quote] 那你应该把项目配置为x86
黑娃 2017-03-10
  • 打赏
  • 举报
回复
引用 4 楼 xuggzu 的回复:
x64系统支持就不说了,因为没任何问题。 至于手写本来就是wpf优势,不论是自己写还是网上找现成的例子都比较容易。
根据以往的经验,我认为是这样样子的: 1、x86dll+x86main,正常编译,运行,在32/64的os上都能正常运行 2、x86dll+x64main,编译警告,32/64os均不能运行 3、x86dll+anymain,编译警告,32os正常运行,64os不能运行 4、x64dll+x86main,编译警告,32/64os均不能运行 5、x64dll+x64main,正常编译,32os不能运行,64os正常运行 6、x64dll+anymain,编译警告,32os不能运行,64os正常运行 7、anydll+x86main,正常编译,32/64os正常运行 8、anydll+x64main,正常编译,32os不能运行,64os正常运行 9、anydll+anymain,正常编译,32/64os正常运行 网上找过,只要是用.NET的例子,全部都是调用的IACore.dll这个X86的来自微软的库
黑娃 2017-03-10
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
你的应用应该配置为 AnyCPU,而不是X64的。
如是配置过,仍然不行的,以下MSIL就是AnyCPU的结果,运行报错: 所生成项目的处理器架构“MSIL”与引用“IAWinFX”的处理器架构“x86”不匹配。
xuggzu 2017-03-10
  • 打赏
  • 举报
回复
x64系统支持就不说了,因为没任何问题。 至于手写本来就是wpf优势,不论是自己写还是网上找现成的例子都比较容易。
  • 打赏
  • 举报
回复
你的应用应该配置为 AnyCPU,而不是X64的。
黑娃 2017-03-10
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
32位程序可以运行在64位操作系统上
dll引用似乎不是这么回事,我在编译一个X64的项目里面引用了IACore.dll,编译时警告IACore.dll的CPU构架是X86,与我主工程的X64不匹配,当我运行到相关模块时会报错的。以下是原话: 所生成项目的处理器架构“X64”与引用“IACore”的处理器架构“x86”不匹配。
Poopaye 2017-03-10
  • 打赏
  • 举报
回复
32位程序可以运行在64位操作系统上
XBodhi. 2017-03-10
  • 打赏
  • 举报
回复
引用 9 楼 sp1234 的回复:
如果你引用的组件只支持 X64,那么只好分为两个进程,独立运行,再通过进程通讯的方式来协同使用了。
这是个很好的解决方案,在楼主不想换的情况下。通过 args[] 指令过去来操作
Poopaye 2017-03-10
  • 打赏
  • 举报
回复
引用 8 楼 falcomavin 的回复:
该项目要处理很多高分辨率图片,对内存要求很高,建议用X64的,而且引用了很重要的第三方设备的库,也是X64的,完全没有把主程序变成X86的可能啊
那也可以单独把手写部分拆出来啊 手写部分又不是很复杂,就是读信号然后处理 你不是有些过手写程序吗?只要改写一下,把手写板的数据发送给新程序,这样也不必重写新代码了
  • 打赏
  • 举报
回复
长远考虑,你还是换别的库试试看吧。
  • 打赏
  • 举报
回复
引用 5 楼 falcomavin 的回复:
如是配置过,仍然不行的,以下MSIL就是AnyCPU的结果,运行报错: 所生成项目的处理器架构“MSIL”与引用“IAWinFX”的处理器架构“x86”不匹配。
它只能是 x86 架构,那就只能独立封装一个 x86 程序。
  • 打赏
  • 举报
回复
如果你引用的组件只支持 X64,那么只好分为两个进程,独立运行,再通过进程通讯的方式来协同使用了。
黑娃 2017-03-10
  • 打赏
  • 举报
回复
引用 7 楼 shingoscar 的回复:
[quote=引用 2 楼 falcomavin 的回复:] [quote=引用 1 楼 shingoscar 的回复:] 32位程序可以运行在64位操作系统上
dll引用似乎不是这么回事,我在编译一个X64的项目里面引用了IACore.dll,编译时警告IACore.dll的CPU构架是X86,与我主工程的X64不匹配,当我运行到相关模块时会报错的。以下是原话: 所生成项目的处理器架构“X64”与引用“IACore”的处理器架构“x86”不匹配。[/quote] 那你应该把项目配置为x86[/quote] 该项目要处理很多高分辨率图片,对内存要求很高,建议用X64的,而且引用了很重要的第三方设备的库,也是X64的,完全没有把主程序变成X86的可能啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧