莫言科技

全过程、自定制,轻松实现跨 旅游集散中心自助游

票务与调度系统(独立版) 整合旅游集散中心资源,提供 自助半自助游自定义套餐

面向有志创业的人士、基于云 计算理念提供的创业产品

敬请期待

查看: 5181|回复: 2

hresult: 0x800736b1 c#调用vc .net托管库程序集dll-凯发k8官网下载客户端

[复制链接]
发表于 2011-3-24 20:32:02 | 显示全部楼层 |
简单地说,要注意两点:8 g/ ~) m& u' `# c8 w" e% v

) [- \6 c' {8 q9 n& k% |1、被调用的dll是release版本还是debug版本很重要.是release版本,如果出现上述问题,就需要安装microsoft visual c 2005 redistributable package (x86),以得到代码运行所需的 msvcr80.dll 及 msvcm80.dll 等,但是,在我的项目中没有这种情况,因为已经安装了.net framework,9 |. d. p  c  x% b
但是如果debug版本,这就囧了,即使用任何一种方法去安装crt都会有hresult: 0x800736b1 的错误。
0 w) j4 j$ b0 t所以,在省城dll的时候不要使用debug版本,而要使用release版本。
# `! z* \' b7 v, }$ k& g如何查看手头的dll是哪个版本,最简单的方法是用文本编辑器打开该 dll 文件,找到以下类似的内容(一般位于文件末尾处):
  1. 7 t( e) _( u. h2 c  t
  2.           manifestversion="1.0">  
      d/ ^. r: @  j( d! q
  3.     
    . d3 e# g3 v: j# m% {: j
  4.       
    " |0 q# o. w9 x0 h! ~
  5.       8 z* u" {) m4 o% p* y; s' j$ w
  6.                         name="microsoft.vc80.debugcrt"   # n4 q: b- }# c" i
  7.                         version="8.0.50608.0"    w6 e: s* u6 c3 b  q
  8.                         processorarchitecture="x86"   
    6 |( w: e- s3 v5 x) ?& c7 r
  9.                         publickeytoken="1fc8b3b9a1e18e3b">  
    # x8 _" l1 d4 w8 l6 r
  10.         
    7 @1 g6 x  s; h, e; n& n
  11.         b% l" [8 u5 g5 c' p8 p8 w
  12.     ( l% p4 f) {; x( x' m- c- f4 j
复制代码
如果看到 microsoft.vc80.debugcrt ,那说明该 dll link的目标是 crt的debug版本,如果是 microsoft.vc80.crt 则 link 到再分发版本。
  p$ q. n) t v a1 q. w
* r: d8 l3 p/ ]; f2 ?& g
  b5 ~$ `, j- ]% a% z* _2、机器的位数。dll要被调用使用在32位机器上,生成dll的时候要选择win32;如果是要使用在64位机器上,则要选择x64【在配置管理器】中选择
 楼主| 发表于 2011-3-24 20:35:10 | 显示全部楼层
这个太重要了,做项目发布一定要注意,不然,经常性的问题就是项目运行在你开发用的机器上啥事没有,运行在客户机器上就各种问题了。7 ^! n& [) ^; d$ }% k2 m# m
感谢此博文博主9 r! t% h, i8 u4 g* o1 i

||archiver|莫言科技 ( )   

gmt 8, 2020-9-5 20:12 , processed in 0.072268 second(s), 11 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表