编译lua,调用时出现unable to get ModulFileName

I have noticed that lua doesn't like when compiled with unicode in visual studio so i tracked down
the problem to loadlib.c and fixed it

line 101: DWORD n = GetModuleFileName(NULL, buff, nsize);
patched:
#ifdef UNICODE
 DWORD n = GetModuleFileNameA(NULL, buff, nsize);
#else
 DWORD n = GetModuleFileName(NULL, buff, nsize);
#endif


line 115-116:
if (FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
     NULL, error, 0, buffer, sizeof(buffer), NULL))

patched:
#ifdef UNICODE
if (FormatMessageA(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
     NULL, error, 0, buffer, sizeof(buffer), NULL))
#else
if (FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
     NULL, error, 0, buffer, sizeof(buffer), NULL))
#endif

line 128:
 HINSTANCE lib = LoadLibrary(path);

patched:
#ifdef UNICODE
 HINSTANCE lib = LoadLibraryA(path);
#else
 HINSTANCE lib = LoadLibrary(path);
#endif

The line numbers are from lua version 5.1.1. Basicly I use normal ascii version of the api function when using unicode mode. I also ifdeffed the normal' version if there is no unicode define because if someone is using old
version of win api (win 95?).



 
 
 
 
 
 
 
 
原文地址: http://lua-users.org/lists/lua-l/2006-06/msg00427.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值