我现在用vs2005 语言是C++ 用 windows窗口应用程序向导 建立了一个项目为123
有如下几个文件:Form1.h stdafx.h stdaf.cpp test.cpp目前手头上有三个文件:COM_PUB.HPP GCOM.dll GCOM.lib  
 
调用dll文件,编译老是通不过。我已经设置了lib了
下面是错误的提示::错误 1 error LNK2028: 无法解析的标记(0A000010) "short __clrcall TMC_DoMeasure(enum TMC_MEASURE_PRG,enum TMC_INCLINE_PRG)" (?TMC_DoMeasure@@$$FYMFW4TMC_MEASURE_PRG@@W4TMC_INCLINE_PRG@@@Z),该标记在函数 "private: void __clrcall My123::Form1::MainMeasureLoop(void)" (?MainMeasureLoop@Form1@My123@@$$FA$AAMXXZ) 中被引用 123.obj 错误 2 error LNK2028: 无法解析的标记(0A000011) "short __clrcall TMC_GetSimpleMea(long,struct TMC_HZ_V_ANG &,double &,enum TMC_INCLINE_PRG)" (?TMC_GetSimpleMea@@$$FYMFJAAUTMC_HZ_V_ANG@@AANW4TMC_INCLINE_PRG@@@Z),该标记在函数 "private: void __clrcall My123::Form1::MainMeasureLoop(void)" (?MainMeasureLoop@Form1@My123@@$$FA$AAMXXZ) 中被引用 123.obj 错误 3 error LNK2028: 无法解析的标记(0A000014) "short __clrcall TMC_GetAngle(struct TMC_HZ_V_ANG &,enum TMC_INCLINE_PRG)" (?TMC_GetAngle@@$$FYMFAAUTMC_HZ_V_ANG@@W4TMC_INCLINE_PRG@@@Z),该标记在函数 "private: void __clrcall My123::Form1::MainMeasureLoop(void)" (?MainMeasureLoop@Form1@My123@@$$FA$AAMXXZ) 中被引用 123.obj

解决方案 »

  1.   

    链接错误,在前面加上#pragma comment(lib,"gcom.lib")试试
      

  2.   

    楼主是在clr环境下使用c dll吧
    应该显示指定调用约定
      

  3.   

    没有啊~就是这三个文件 在 vc6.0下可以调用的,现在我用vs2005 编写windows窗口程序 就不行了~~
      

  4.   

    //dll的导出函数
    __deslspec(dllexport) int __stdcall func();//clr的声明
    int  __stdcall func();
      

  5.   


    详细点,高手!dll不是我自己编写的,是否意味着我不能在vc.net环境下用了?
      

  6.   

    def文件中讲动态库函数导出试试,格式想不起来了,类似@n funcname()
      

  7.   

    相应的 头文件 也要包含到工程中。COM_PUB.HPP 是什么文件呀.cpp or .h 吗??
      

  8.   

    .net引用dll,然后自己重写用到的结构和函数的声明