我本身什么职业?学生。(不要不相信,我没骗你)
这个程序是没事干,无聊的时候写的。
关于10#的朋友说的“当用户输入的参数个数与实际个数不符的时候,将会由于堆栈失衡而崩溃掉”这很正常。因为我也无法获知你输入的API到底有多少个参数,每个参数是不是指针。
像VB的调用API的思路应该就和我这个程序差不多:
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
'ByVal 传值(非指针)
'ByRef 传址(指针)
'String 类似于MFC的“CString”,也是指针的一种吧
'Alias "MessageBoxA" 为函数名取别名,这个后面的A或W是编码方式,看你是MBCS还是Unicode编码
因为VB不像VC一样有头文件和库,它纯粹是通过对字符串的解析来调用的,所以你是怎么定义的,哪怕是定义错了,多了一个参数,也照样正常编译。只是它会不会因为多了参数而崩溃掉,这我就不知到了。
(我看这个VB的API定义还不错,Aegisys你可以参考这种定义方式,像“user32.dll!MessageBoxA(0, "HelloWorld!", 0, 0);”总觉得太简陋了)