您的位置:程序门 -> .net技术 -> vb.net



vb.net 自己制作的dll入口有问题 从来没人来彻底解决!?!? 


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb.net 自己制作的dll入口有问题 从来没人来彻底解决!?!? [已结贴,结贴人:cjfcjfcjf]
发表于:2008-03-12 01:16:18 楼主
首先表示非常的恼火!
找了一整天,看到了大片大片的这类似的问题,但全都无实效.很多同仁也都提过无数次这个问题,回复的也很多,但始终也没找到能解决我问题的正解.
和其他同仁一样,我也是自己创建了一个控件.dll 然后在一个程序引用并imports,接着想要调用它里面的一个函数,就报错了,提示 "无法在 dll k.dll 中找到名为 haha 的入口点"
public class k
    inherits system.windows.forms.usercontrol

#region " windows 窗体设计器生成的代码 "
这部分自动生成的代码省略了
#end region
    
    public function haha() as string
        return "1234"
    end function
end class

这个控件类我生成了名为 k.dll的文件

然后我在程序引用它:

imports k

public class form1
    inherits system.windows.forms.form

#region " windows 窗体设计器生成的代码 "

#end region


    declare auto function haha lib "k.dll" alias _
    "haha" () as string

    private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
        messagebox.show(haha)

    end sub
end class


结果我一点按钮执行就报错 "无法在 dll k.dll 中找到名为 haha 的入口点"
我觉得我declare这个函数应该没有问题,问题应该是出在dll这里,是不是需要在做dll时在里面设定一个程序入口,我对这方面非常迷惑.
已经苦苦在网上找了一整天了,而网上大多数人都去解释调用一些.net或系统的dll控件的情况,那些情况和我的不同,我的情况是调用自己做的dll,而这个自己做的dll是否需要增加某些类似于入口的代码呢?
我都快崩溃了.
大家帮帮我吧!!!!!!!!!
发表于:2008-03-12 02:22:241楼 得分:20
1,创建dll,看你写的,你创建的时候project名是k,其中有个类名称也是k;
2,创建应用程序,在菜单project-> add reference...中browse找到你创建的dll(k.dll),在solution explorer中show all files中的reference可以看到你引用的dll;
3,
'引入namespace
imports k
public class form1

    private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
'创建类对象
        dim a as new k.k
        msgbox(a.haha())
    end sub
end class
发表于:2008-03-12 08:46:252楼 得分:20
lz,谁告诉你用户控件是这样子用的?谁告诉你vb编写的dll还需要用declare function来搞?我不明白谁告诉lz这一套做法的?
您知道您正在使用.net开发吗?
发表于:2008-03-12 10:09:293楼 得分:0
whatinrain 你这个方法我是知道的,把类声明一下,再用他的函数,我现在也是这么用。但我的本意是想直接调用里面的函数,而不是 dim a as new k.k 
发表于:2008-03-12 10:16:224楼 得分:0
ninputer  你别那么诧异
我是初学者,在.net下declare function用来调用客户的dll是不可行的吗?我虽然现在还不完全理解其中的好处坏处,但我觉得多种方法肯定多条路,而且网上看到不少人也提及用declare function在.net下来调用dll,不论这种方式的好坏,我只想知道这么做能不能实现调用dll里函数,如果能的话给出个清楚的解答或者案例即可。
发表于:2008-03-12 10:21:195楼 得分:0
另外补充一下
这个类似的问题其他人也问过很多次了,但问着问着就变成讨论如何引用dll的问题了,其实我这次问的一个要点是我写的dll是不是存在问题,而影响我dll被别的程序调用,请不要偏离。希望大家从这个角度帮我想想,谢谢!!
发表于:2008-03-12 10:41:276楼 得分:30
暈下先.
.net的dll與傳統win32 dll是完全不一樣的,
.net中調用.net編寫的dll組件,衹需要引用就好了.
发表于:2008-03-12 12:27:147楼 得分:30
引用 4 楼 cjfcjfcjf 的回复:
ninputer  你别那么诧异 
我是初学者,在.net下declare function用来调用客户的dll是不可行的吗?我虽然现在还不完全理解其中的好处坏处,但我觉得多种方法肯定多条路,而且网上看到不少人也提及用declare function在.net下来调用dll,不论这种方式的好坏,我只想知道这么做能不能实现调用dll里函数,如果能的话给出个清楚的解答或者案例即可。


即使declare也是调用标准的dll文件,.net生成的不是标准dll(同exe),没有输出表的!
发表于:2008-03-12 12:57:018楼 得分:20
lz,你那个根本不是标准的dll,不能这么用的。呵呵
发表于:2008-03-13 09:33:529楼 得分:0
毛厕顿开
受教 受教


快速检索

最新资讯
热门点击