社区
VB基础类
帖子详情
VB程序的入口是什么? 在哪里可以找得到?
duanfeng
2002-11-04 10:38:00
VB程序的入口是什么? 在哪里可以找得到?
...全文
125
5
打赏
收藏
VB程序的入口是什么? 在哪里可以找得到?
VB程序的入口是什么? 在哪里可以找得到?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangxu421
2002-11-04
打赏
举报
回复
有的有 Sub Main()
有的没有
如果没有,程序执行第一个窗体的load
ketao_78
2002-11-04
打赏
举报
回复
hello world~!
Sylix
2002-11-04
打赏
举报
回复
象我看一个DLL中的代码, 好象没有main()
landog
2002-11-04
打赏
举报
回复
sub main()
Sylix
2002-11-04
打赏
举报
回复
有main函数吗?
一个求三角形面积的
vb
程序
求三角形面积,求三角形面积的
vb
程序
,求三角形面积,求三角形面积的
vb
程序
单纯形法解决线性规划问题
VB
程序
利用
VB
编程解决线性规划问题 单纯形法解决线性规划问题
VB
程序
vb
md5加密源
程序
vb
md5加密源
程序
vb
md5加密源
程序
vb
md5加密源
程序
vb
md5加密源
程序
vb
md5加密源
程序
VB
编程常用的模块及CTL控件集打包.rar
VB
一些常用控件集,以及一些方法模块,编辑框.ctl、进度条、全局热键钩子、网站服务器、托盘控件、WinSock.ctl、曲线图.ctl、压缩算法-升级版.cls、数组加解密.cls、打开文件属性面板.bas等,其中一个模块的部分代码摘录如下: ------------------------------------------------------------------------------------------ ‘遍历进程,查
找
notepad.exe MyRemoteProcessId = OpenProcess(PROCESS_CREATE_THREAD PROCESS_VM_OPERATION PROCESS_VM_WRITE PROCESS_VM_READ, False, ProcessInfo.th32ProcessID) ‘打开进程获得notepad的句柄供后面的操作使用 DllFileName = "C:
Vb
legend.dll" MyDllFileLength = Len(DllFileName) 1 ‘学过C语言的朋友应该知道字符串最后要一个ASCII 0标志结尾,所以要加1 MyDllFileBuffer = VirtualAllocEx(MyRemoteProcessId, 0, MyDllFileLength, MEM_COMMIT, PAGE_READWRITE) ‘在指定进程里申请一块内存区域出来供我们存放字符串“c: est.dll“ ‘传string给api时,byval byref有区别,应该使用byval,这样会传给api一个标准的C字符指针,不能byref,否则函数调用没问题 ‘但是起不到预期效果,VirtualAllocEx返回的是申请到的内存地址值. MyReturn = WriteProcessMemory(MyRemoteProcessId, MyDllFileBuffer, DllFileName, MyDllFileLength, temp) ‘向刚才申请的内存中写入dll文件路径字符串 ‘顺便说一下,很多api浏览器上的api声明都是错的,包括
VB
6自带的也不例外,writeprocessmemory第二个参数要的是 ‘lpBaseAddress 但是这个值不能传址
得到
,如果你按byref传址,实际上传的是MyDllFileBuffer变量的地址,而不是它里面存放的那个数字 ‘上面说了MyDllFileBuffer的数值才是WriteProcessMemory要的地址,所以声明API的时候一定要byval,大家知道空着不写就是默认byref ‘下面还有几处不该传址的参数,只要搞清楚API函数要的到底是什么值才可以确定到底传值还是传址,API浏览器仅能供参考,还是要仔细阅读MSDN MyStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA") ‘获取loadlibrary函数的地址,这个函数可以载入指定的dll文件,那他的参数呢?就是我们刚才在notepad.exe进程里写入的“c: est.dll“ ‘不过还得让CreateRemoteThread告诉他.另外简单的说一下windows下应用
程序
的内存管理,我也不很懂,呵呵,win32下的应用
程序
‘的内存区域是隔开的,每个
程序
有自己的一块内存不能直接访问别的
程序
的内存区,当然,这里调用的几个系统函数有访问别的
程序
内存区域的特权 ‘而且每个应用
程序
的内存区域都映射到系统内存区域里,也就是说在这里GetProcAddress
得到
的
VB
程序
里LoadLibraryA函数的
入口
地址和 ‘notepad
程序
里的LoadLibraryA函数地址是一致的(映射的作用),所以不必担心.另外在
VB
写的
程序
里 ‘要使用LoadLibraryA,notepad不是用vc写的吗?要注意根notepad没关系,我们现在是在自己的
VB
程序
里面
找
LoadLibraryA函数的
入口
. ‘还有要注意函数大小写,api函数和
vb
不一样的。 MyResult = CreateRemoteThread(MyRemoteProcessId, 0, 0, MyStartAddr, MyDllFileBuffer, 0, temp) ‘好了,现在该让LoadLibrary载入“c: est.dll“吧,现在CreateRemoteThread做的就是在notepad进程中把控制权转到LoadLibrar
vb
类似扑克牌算24点小游戏 源代码
vb
类似扑克牌算24点小游戏 源代码
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章