VB.net从dll访问结构

时间:2013-06-01 21:24:52

标签: vb.net

我编写了以下C代码来创建和导出用于使用值填充结构的结构和例程。 例程和结构都是从DLL导出的。

__declspec(dllexport) struct x_struct *test_structure; 
__declspec(dllexport) void load_structure(void); 

struct x_struct {
    long x_long;          
    float x_float;          
    char *x_cstar;          
    struct x_struct *test_structure;
    };

void load_structure(void)
 {
    test_structure = (struct x_struct *)CstdlibMalloc(sizeof(struct x_struct));

    test_structure->x_long  = 22;
    test_structure->x_float = 55.0;
    test_structure->x_cstar = CstrCpy("test string");
 }

我在VB模块中声明了这样的dll例程:

Declare Sub load_structure Lib "Test.dll" ()

我从VB访问例程:

  Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
      Call load_structure()
   End 

一切正常。我可以进入C例程并看到结构变量被填充。

我无法弄清楚如何从DLL导入结构 Declare或DllImportAttribute都不允许我指定结构而不是子例程或函数。

0 个答案:

没有答案