当前位置:编程学习 > VB >>

实时错误'453':找不到DLL入口点CreateEllipticrgn in gdi32 怎么解决才好呢。

Private Declare Function CreateEllipticrgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As Long
Private Declare Function setWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hrgn As Long, ByVal bredraw As Boolean) As Long
Private Sub Form_Load()
Me.Show 'The form!
setWindowRgn hwnd, CreateEllipticrgn(0, 0, 300, 200), True

End Sub
 VB中不能运行。提示:“实时错误'453':找不到DLL入口点CreateEllipticrgn in gdi32 ”我用的是WIN XP SP3。
  怎样才能运行呢?
--------------------编程问答-------------------- Private Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
注意大小写 --------------------编程问答--------------------
Option Explicit

Private Declare Function CreateEllipticRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32.dll" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
Dim a As Long
Me.Show 'The form!
a = CreateEllipticRgn(0, 0, 300, 200)
SetWindowRgn hWnd, a, True

End Sub
--------------------编程问答-------------------- 说明 gdi32 里面没有 CreateEllipticrgn 这个函数。

可能是你写错了函数名,或者当前系统不支持这个函数。 --------------------编程问答-------------------- 声明有问题

复制以下代码去测试

Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Sub Form_Load()
Me.Show 'The form!
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 300, 200), True

End Sub

--------------------编程问答-------------------- API是要认大小写的 --------------------编程问答-------------------- Windows API的命名一般是骆驼式的,也是区分大小写的,一看你这两个就十分可疑,哈哈:
CreateEllipticrgn 
setWindowRgn  --------------------编程问答-------------------- 关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:
A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程
B初级程序员
C高级程序员
D软件项目经理

如果想从A变成B的话,到我的资源http://download.csdn.net/zhao4zhong1里面下载“适合程序员的键盘练习”
--------------------编程问答-------------------- 因為其原型是C\C++的.所以大小寫敏感

引用 5 楼 chenjl1031 的回复:
API是要认大小写的
--------------------编程问答-------------------- 请用PEBrowse、dumpbin或其它工具查看引用的dll中导出的函数名字
--------------------编程问答--------------------
这种问题不难解决。

用 Dependency 看一下 GDI32.dll 程序,就可以找到正确的函数名 CreateEllipticRgn。我这里就是通过它的右键菜单 Copy Function 复制出来的。
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,