回 帖 发 新 帖 刷新版面

主题:求救:疑难杂症

%Maz.h
int global;
extern "C" _declspec(dllexport) void set_global_val(FILE *);
extern "C" _declspec(dllexport) int Maz(int,int);
  %Maz.cpp
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include "Maz.h"
void set_global_val(FILE *fp)  {while (fscanf (fp, "%d",&global)!=EOF);}
int Maz(int x,int y)  {return(x*y*global);}

将上面的两个函数封装生成dll,加入到另外一个工程(test)中,test编译没有错误,调试时调用set_global_val时出现如下错误:“test.exe中的 0x77f51baa 处未处理的异常: 0xC0000005: 写入位置 0x00000010 时发生访问冲突 。”是不是我在生成dll时出错了?请各位大虾指点。

回复列表 (共2个回复)

沙发

extern "C" _declspec(dllexport) void set_global_val(FILE *);

这个函数中FILE* 这个指针有没有初始化?是不是乱指一通?

板凳

没有。这个是外部函数的声明,不存在初始化的问题。这里要看一下调用set_global_val的那句语句才能下结论

我来回复

您尚未登录,请登录后再回复。点此登录或注册