无法加载 DLL“LicenseCheck.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

mzy939216 2010-06-13 03:32:40
c++代码用于生成一个DLL,里面有函数
bool CheckLicense(char* pLicPath,int& nModulID)
{
...
}


我现在用c#调用dll
[DllImport("LicenseCheck.dll")]
public static extern bool CheckLicense(string pLicPath, int nModulID);

public void NewProject()
{
bool LicenseIsGood = CheckLicense(System.Windows.Forms.Application.StartupPath, 0);//出错
...
}

提示标题上的错误!

哪位能帮我这个小忙,解解惑
...全文
602 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzy939216 2010-06-18
  • 打赏
  • 举报
回复
还有个帖子挂在这给忘了,我已经解决这个问题了,我最后通过LicenseCheck.dll又用c++写了一个exe执行程序,问题就解决了
Jellyfancy 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mzy939216 的回复:]

自己座个沙发
另一个问题:
c#中对应的CheckLicense后面的参数应该怎么写呢?像上面那样写对吗?
[/Quote]
这个调用没有问题

[DllImport("LicenseCheck.dll",CharSet=CharSet.ansi)]试下
zhu_jiang 2010-06-13
  • 打赏
  • 举报
回复
没注意,应该使用byte*
zhu_jiang 2010-06-13
  • 打赏
  • 举报
回复
c++中char* pLicPath 代表ansistring,以'\0'结束,很可惜如果此dll不加入长度判断将存在溢出风险,提醒楼主小心
第2,.net中string 是 unicode类型,
建议楼主采用 ref char[256]作为参数把。
hejialin666 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jellyfancy 的回复:]
一般是参数回传问题
回传的参数前面要加上ref
[/Quote]
同意这个观点!
nalisaki 2010-06-13
  • 打赏
  • 举报
回复
我一般都是把引用的dll加入到解决方案中来的,然后再加一个Using,引用如果按照引用函数的语法来引用的话,一般都不会出问题吧!!
Jellyfancy 2010-06-13
  • 打赏
  • 举报
回复
一般是参数回传问题
回传的参数前面要加上ref
mzy939216 2010-06-13
  • 打赏
  • 举报
回复
找不到模块问题我自己解决了!
现在出现一个新的问题:
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
mzy939216 2010-06-13
  • 打赏
  • 举报
回复
自己座个沙发
另一个问题:
c#中对应的CheckLicense后面的参数应该怎么写呢?像上面那样写对吗?
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 第 一 章 概述 1-1 简述计算机程序设计语言的发展阶段。 解: 自从计算机诞生以来,程序设计语言经历了从机器语言、汇编语言到高级语言的演变过程,C++语言作为一种面向对象的编程语言,也属于高级语言范畴。 1-2 面向对象的编程语言具备哪些特性? 解: 面向对象的编程语言与传统的编程语言有着本质的区别,其设计初衷是为了更直观地模拟现实世界中存在的事物及其相互关系。这类编程语言将客观事物视为具有属性和行为的对象,通过抽象方法提取出同一类对象的共同属性(静态特征)和行为(动态特征),从而构建类。借助类的继承与多态机制,能够便捷地实现代码复用,显著缩短软件开发周期,并确保软件风格的一致性。因此,面向对象的编程语言使得程序能够较为准确地反映问题域的本质,软件开发人员可以运用人类惯用的思维模式进行开发工作。C++语言是目前应用最为广泛的面向对象编程语言。 1-3 结构化程序设计方法是什么?这种方法有哪些优势和不足? 解: 结构化程序设计的核心思想是自顶向下、逐步求精;其程序结构按照功能划分为多个基本模块;各模块之间的关联尽可能简化,在功能上保持相对独立性;每个模块内部均由顺序、选择和循环三种基本结构构成;模块化实现的具体途径是利用子程序。结构化程序设计由于采用模块分解与功能抽象,自顶向下、分而治之的策略,从而有效地将一个较为复杂的程序系统设计任务分解成许多易于管理和处理的子任务,便于开发与维护。 尽管结构化程序设计方法具备诸多优点,但它本质上仍是一种面向过程的程序设计方法,将数据与处理数据的操作分离为相互独立的实体。当数据结构发生变化时,所有相关的处理过程都需要进行相应的调整,每一种...

111,131

社区成员

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

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

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