如何使用系统DLL中的函数?

hk318 2000-05-19 10:39:00
大家好:
本人正在开发一个小程序,用到krnl386.exe中的函数 AllocCSToDSAlias

声明:
extern "C" __declspec(dllimport) WORD FAR PASCAL AllocCSToDSAlias(WORD h);

然后用 implib krnl386 krnl386.exe 导出 krnl386.lib
包含到工程中,但编译连接老出错,
[Linker Error] Unresolved external 'AllocCSToDSAlias' referenced from xxx.obj
试过多次也不见效!老出错。
请高手赐招!!!!!!!!!!!!!!!!!11
hk318 (hk318@371.net)
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
双子东宝 2001-10-26
  • 打赏
  • 举报
回复
密切 关注!
Mike_sun 2000-07-14
  • 打赏
  • 举报
回复
密切
hhzh426 2000-07-14
  • 打赏
  • 举报
回复
关注!
kmfangxun 2000-05-27
  • 打赏
  • 举报
回复
这样试试:

extern "C" __declspec(dllimport) WORD FAR PASCAL __stdcall AllocCSToDSAlias(WORD h);

kmfangxun 2000-05-27
  • 打赏
  • 举报
回复

这样试试:

extern "C" __declspec(dllimport) WORD FAR PASCAL __stdcall llocCSToDSAlias(WORD h);

ploto 2000-05-23
  • 打赏
  • 举报
回复
在Win9x中已经不再支持AllocCsToDsAlias 函数,在KRNL386.DLL中仍旧有该函数只是为了兼容,而且该函数是16位代码,在32位代码中是不能用的,除非经过THUNK。你使用该函数是想截取WINDOWS的API吗?如果是这样,我可以提供例程(不通过allocCsToDsAlias).
DingBoy 2000-05-21
  • 打赏
  • 举报
回复
HINSTANCE dd;
int _stdcall (*ddd)(xxxx); //定义入口参数类型
dd = LoadLibrary("krnl386.exe");
ddd= (int (_stdcall*)(char *))GetProcAddress(dd,"AllocCSToDSAlias");
ddd(xxxx);
halfdream 2000-05-20
  • 打赏
  • 举报
回复
你用impdef krnl386.def krnl386.exe 先导出成DEF文件。
然后可以用 impdef krnl386.lib krnl386.def导成lib。
Edit krnl386.def 看看,你会发现里面的函数都是用的大写。
所以,你要不将 AllocCSToDSAlias声明 改成大写字母,
要不将编译选项中的大小写敏感关掉。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧