vb6.0转换为c#问题三个!

pomelowu 2003-07-14 04:47:50
我是刚学习用c#的,现在用的编辑器是vs.net

1、vb6中的modules转换为什么文件?

2、这种语句如何转换?Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long

Declare Function regQVE Lib "advapi32.dll" Alias "RegValueEx" (ByVal hKey As Long, ByVal hName As String, ByVal hRes As Long, hTyp As Long, lpData As Any, hData As Long) As Long

3、vb6中使用的ocx控件应该如何添加?C#好像只能使用.dll方式?
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArLi2003 2003-07-15
  • 打赏
  • 举报
回复
过去的imagelist 只能考虑将它分解成图标再导入C#,没有直接的转换,因为VB6的资源格式和.net 不同
pomelowu 2003-07-15
  • 打赏
  • 举报
回复
谢谢楼上的,确实是抄错了。
还有一个问题:
以前用vb6做的imagelist如何导入c#?谢谢!
ArLi2003 2003-07-15
  • 打赏
  • 举报
回复
1,一样是模块,编译用:

csc /t:module mycs.cs

2,

[DllImport("user32.dll", EntryPoint="WinHelp")]
public static extern int WinHelp (
int hwnd,
string lpHelpFile,
int wCommand,
int dwData
);

第二个我感觉是字面错误,应该是RegQueryValueEx 而不是 regvalueEx:

[DllImport("advapi32.dll", EntryPoint="RegQueryValueEx")]
public static extern int RegQueryValueEx (
int hKey,
string lpValueName,
int lpReserved,
ref int lpType,
ref int lpData,
ref int lpcbData
);

这个API 没什么必要,因为C# 有比之更强大更简单数倍的注册表操作库,参见.net 的RegistryKey 类库。

关于API 可以下载我的工具帮你生成: http://zpcity.com/arli

3,OCX 属于COM 控件一样可以用但不推荐,而且字符集不同,就算用也只是托管,

如果是库可以在引用里加,如果是可视控件,可以向VB6 一样右击左边的工具箱选添加,然后选到COM 页,如果不在列表中可以自己按浏览选择。。
AhBian 2003-07-14
  • 打赏
  • 举报
回复
VS.NET IDE 不支持 Module 开发,但可用 C# 命令行编译器生成 Module。请看帮助文档。

[DllImport("user32.dll", CharSet=CharSet.Auto),]
private extern static bool WinHelp(Intptr hwnd, string helpFile, uint wCommand, int dwData);

第 2 个我找不到确切的原定义,我不乱写了。

注意:因为 VB 6 不支持无符号整数,所以只能用 long 来指代原定义为 uint 的参数。


110,534

社区成员

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

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

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