关于WIN API 的疑问。。。。!!急!!
我在使用NET_API_STATUS NetMessageBufferSend(
LPWSTR servername,
LPWSTR msgname,
LPWSTR fromname,
LPBYTE buf,
DWORD buflen
);
函数做信使程序的时候,老是提示NetMessageBufferSend()函数找不到,出错信息为:[C++ Error] Unit1.cpp(27): E2268 Call to undefined function 'NetMessageBufferSend'
但是这个函数在帮助和MSDN中都可以看到,请教各位高手,请指点
源代码如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char servername[]="server";
char msgname[]="msg";
char fromname[]="host";
char buff[]="程序";
int len=6;
int result=NetMessageBufferSend(servername,msgname,fromname,buff,len);
}
问题点数:20、回复次数:13Top
1 楼nickgg(匿名哥哥)回复于 2001-12-28 12:13:25 得分 0
*.h;*.dll?Top
2 楼superaf(阿斐)回复于 2001-12-28 13:24:43 得分 0
to nickgg:好象调用windows api 不需要头文件,难道要动态载入netapi32.dll吗?Top
3 楼Ykang()回复于 2001-12-28 14:19:02 得分 0
老兄:
用这个 #include <lmmsg.h>看看Top
4 楼xtky_limi(窗外细雨)回复于 2001-12-28 16:18:58 得分 0
学习中!Top
5 楼superaf(阿斐)回复于 2001-12-28 17:30:45 得分 0
to tkang:不行,提示NET_API_STATUS NET_API_FUNCTION 这一句上面:
[C++ Error] lmmsg.h(41): E2141 Declaration syntax error
??
还请高手指导:Top
6 楼fjfeng(fjfeng)回复于 2001-12-28 18:18:08 得分 0
结尾加分号了吗?Top
7 楼bcboy(编程蜗牛)回复于 2001-12-28 18:38:42 得分 0
immsg.h
netapi.libTop
8 楼Ykang()回复于 2001-12-29 10:41:37 得分 20
老兄:
我这样编译通过啦!
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Form1.h"
#include <lmcons.h> //必须包含这个
#include <lmmsg.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
wchar_t servername[]=L"server"; //是wchar_t 类型字符
wchar_t msgname[]=L"msg";
wchar_t fromname[]=L"host";
char buff[]="程序";
int len=6;
int result=NetMessageBufferSend(servername,msgname,fromname,buff,len);
}Top
9 楼ydx(只要你决心成功,失败永远不会把你击垮!)回复于 2001-12-30 08:43:30 得分 0
有一些api是用到头文件的,比如mcisendstring等就用头文件。Top
10 楼superaf(阿斐)回复于 2002-01-03 20:36:16 得分 0
to Ykang()
谢谢了,这几天放假了没有来,今天才开,ok了,也谢谢其他兄弟关注。Top
11 楼superaf(阿斐)回复于 2002-01-03 21:12:35 得分 0
to Ykang(): 你好,
能麻烦还把 wchar_t servername[]=L"server"; 中 这点 L"server"语法解释下吗?答案好的话,一定再给分,谢谢!Top
12 楼Ykang()回复于 2002-01-07 10:02:48 得分 0
老兄:
wchar_t这个关键字现在好象有很多编译器不支持,例如在VC中这个词不会变颜色,在<标准C++宝典>一书中所带的GNU编译器也不能编译 wchar_t c[]="Test";根据我的理解,前面这个"L"是告诉编译器把这个字符串按照宽格式生成,可能是Borland的独创吧。宽字符与普通的ASCII字符的表示是不一样的,如字符'A'用宽字符表示则是'\0''A',在内存中(低地址到高地址)则是'A''\0'。 Top
13 楼superaf(阿斐)回复于 2002-01-08 18:47:55 得分 0
多谢老兄指点,我看了下msdn,觉得可能是去内存地址的低字节位置吧,祝你好运!Top




