通过函数,用传址的方式(ByRef)传送

解决方案 »

  1.   

    建议使用下面两个API:
    CreateFileMapping、MapViewOfFile
    具体请查MSDN
      

  2.   

    是ActiveXDLL
    变量很多,如何用(ByRef)传送?请写一下!谢谢
      

  3.   

    用专门的接口(方法)来进行数据交换比如你的一个dll中有个输出方法GetName,目的是返回dll中的变量m_Name的
    那么在你的工程中想得到dll中变量m_Name 的值,就直接调用getname方法不就可以得到m_name的值了,吗
    同样在你的dll中有个方法SetName,目的是设定dll中变量m_Name的值的
    在工程中调用SetName "Your Name",这不就可以将值传给dll变量了吗
      

  4.   

    是用vb写的ActiveX DLL
    变量很多,如何用(ByRef)传送?请写一下!谢谢
      

  5.   

    DLL(VB写的)本身是一个工程,就像两个工程如何共享一个变量一样。所以你需要两个工程提供接口,为DLL提供一个属性(具体写法看楼上)。在DLL中就可以使用属性的值
      

  6.   

    '##########       dll中的类模块代码
    Public mczyxm As String   '操作员Public Property Get czyxm() As String
    czyxm = mczyxm
    End PropertyPublic Property Let czyxm(ByVal vNewValue As String)
    mczyxm = NewValue
    End Property'##########       dll中的窗体代码
    Dim hj As New hjsf
    Public czy As String   '操作员
    Private Sub Form_Load()czy = hj.gczyxm  '''''''''''我这里要用属性,取属性
    MsgBox czy    '是空的endsub
    '##########       调用dll的工程代码
    Dim ghjsf As New hjsfdll.hjsf
    czy="张三"
    ghjsf.mczyxm = Czy是不是这样用???????为何向DLL中传属性字符串不成功?
      

  7.   

    '##########       dll中的类模块代码
    Public mczyxm As String   '操作员
    Public Property Let czyxm(ByVal vNewValue As String)
    mczyxm = vNewValue
    End Property
    去掉:
    Public Property Get czyxm() As String
    czyxm = mczyxm
    End Property