mingw 编译openvpn 编译tap-win32时报错
来源:互联网 发布:js点击radio 编辑:程序博客网 时间:2024/06/05 16:15
这是报错部分源码:
typedef struct _INSTANCE {
struct _INSTANCE *next;
TapAdapterPointer m_Adapter;
} INSTANCE;
typedef struct {
INSTANCE *list;
MUTEX lock;
} INSTANCE_BUCKET;
typedef struct {
INSTANCE_BUCKET buckets[N_INSTANCE_BUCKETS];
} INSTANCE_HASH;
INSTANCE_HASH *g_InstanceHash = NULL; //定义全局变量 g_InstanceHash
BOOLEAN
InitInstanceList (VOID)
{
MYASSERT (g_InstanceHash == NULL);
g_InstanceHash = MemAlloc (sizeof (INSTANCE_HASH), TRUE); ///这里是申请内存
if (g_InstanceHash)
{
int i;
for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
INIT_MUTEX (&g_InstanceHash->buckets[i].lock);
return TRUE;
}
else
return FALSE;
}
int
NInstances (VOID)
{
int i, n = 0;
if (g_InstanceHash)
{
for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
{
BOOLEAN got_lock;
INSTANCE_BUCKET *ib = &g_InstanceHash->buckets[i];
ACQUIRE_MUTEX_ADAPTIVE (&ib->lock, got_lock);/*编译到这里报错:error c4090:'function' :different 'volatile'qualifiers*/
if (got_lock)
{
INSTANCE *current;
for (current = ib->list; current != NULL; current = current->next)
++n;
RELEASE_MUTEX (&ib->lock);
}
else
return -1;
}
}
return n;
typedef struct _INSTANCE {
struct _INSTANCE *next;
TapAdapterPointer m_Adapter;
} INSTANCE;
typedef struct {
INSTANCE *list;
MUTEX lock;
} INSTANCE_BUCKET;
typedef struct {
INSTANCE_BUCKET buckets[N_INSTANCE_BUCKETS];
} INSTANCE_HASH;
INSTANCE_HASH *g_InstanceHash = NULL; //定义全局变量 g_InstanceHash
BOOLEAN
InitInstanceList (VOID)
{
MYASSERT (g_InstanceHash == NULL);
g_InstanceHash = MemAlloc (sizeof (INSTANCE_HASH), TRUE); ///这里是申请内存
if (g_InstanceHash)
{
int i;
for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
INIT_MUTEX (&g_InstanceHash->buckets[i].lock);
return TRUE;
}
else
return FALSE;
}
int
NInstances (VOID)
{
int i, n = 0;
if (g_InstanceHash)
{
for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
{
BOOLEAN got_lock;
INSTANCE_BUCKET *ib = &g_InstanceHash->buckets[i];
ACQUIRE_MUTEX_ADAPTIVE (&ib->lock, got_lock);/*编译到这里报错:error c4090:'function' :different 'volatile'qualifiers*/
if (got_lock)
{
INSTANCE *current;
for (current = ib->list; current != NULL; current = current->next)
++n;
RELEASE_MUTEX (&ib->lock);
}
else
return -1;
}
}
return n;
}
0 0
- mingw 编译openvpn 编译tap-win32时报错
- Tap-Win32的编译
- window下应用msys/mingw编译openvpn
- qt用mingw编译时报错 multiple definition of
- qt用mingw编译时报错 multiple definition of
- win32 + windows + mingw + msys 编译ACE
- 可用MinGW编译的win32绘图框架
- 用MinGW编译Win32 GDI应用程序
- Mingw下编译PJSIP时报错undefined reference to `pjmedia_format_init_audio'问题解决
- 编译uboot时报错
- android编译时报错
- tap驱动器的编译
- vpn报错:OpenVPN for Win32 "All TAP-Win32 adapters on this system are currently in use"
- OpenAL-soft编译,MinGW Win32和Win64,动态和静态
- VC++6.0创建一个含gdiplus的Win32 Static Library工程编译时报错解决办法
- Windows平台编译openvpn
- 编译Openvpn openssl
- Windows编译OpenVPN客户端
- html5 canvas学习--绘制径向渐变
- 常用sql语句
- 《java编程思想》 第十二章异常处理错误
- HDU5927
- MD5加密
- mingw 编译openvpn 编译tap-win32时报错
- 面试技巧
- linux文件1
- HDU 5927 Auxiliary Set By Assassin
- JSTL标签库之核心标签
- 【计划】国庆总结及近期计划
- 欢迎使用CSDN-markdown编辑器
- object c 代理设计模式,有点像java的监听
- Java开发中的23种设计模式总结