求助!!c++的源代码,用vs打开后运行不了,说是未识别标识符“buf”



源代码是别人发给我的,我看了看表头也没有错啊,是不是代码这边有错。本人是小白,求各位大佬告知一下,谢谢了。
下面是代码:
#include "stdafx.h"
#include "ConsoleApplication1.h"
#include <stdio.h>
#include <windows.h>
#include <string.h>
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#pragma comment(lib, "lua5.1.lib")
lua_State *L;
HWND HMainwnd = NULL;
HWND hwndButton = NULL;
int run();
bool InitWindowsApp(HINSTANCE instanceHandle, int show);
LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp);
//main函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
if (!InitWindowsApp(hInstance, nShowCmd))
{
return 0;
}
run();
return 0;
}
bool InitWindowsApp(HINSTANCE stanceHandle, int show)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = stanceHandle;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = "BaseWndClass";
if (!RegisterClass(&wc))
{
MessageBox(0, "注册失败", 0, 0);
return false;
}
HMainwnd = CreateWindow("BaseWndClass","xxx(12345)",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,300,300,NULL,NULL,stanceHandle,NULL);
hwndButton = CreateWindow("BUTTON", "Operate", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 100, 100, 100, 60, HMainwnd, (HMENU)520, (HINSTANCE)GetWindowLong(HMainwnd, GWL_HINSTANCE), NULL);
if (HMainwnd == 0)
{
MessageBox(0, "创建窗体失败", 0, 0);
return false;
}
ShowWindow(HMainwnd, SW_SHOW);
UpdateWindow(HMainwnd);
return true;
}
HWND hButton;
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg)
{
case WM_PAINT:
hdc = BeginPaint(wnd, &ps);
SetRect(&rc, 10, 10, 500, 30);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_COMMAND:
if (LOWORD(wp) == 520 && HIWORD(wp) == BN_CLICKED)
{
//1.创建Lua状态
lua_State *L = luaL_newstate();
if (L == NULL)
{
MessageBox(0, TEXT("lua创建失败"), TEXT("提示"), MB_OK);
}
//2.加载Lua文件
int bRet = luaL_loadfile(L, "op.lua");
if (bRet)
{
MessageBox(0, TEXT("加载文件错误"), TEXT("提示"), MB_OK);
}
//3.运行Lua文件
bRet = lua_pcall(L, 0, 0, 0);
if (bRet)
{
MessageBox(0, TEXT("pcall错误"), TEXT("提示"), MB_OK);
}
//6.读取函数
lua_getglobal(L, "as1231d");
lua_pushnumber(L, 40);
lua_pushnumber(L, 20);
int iRet = lua_pcall(L, 2, 1, 0);
if (iRet)
{
const char *pErrorMsg = lua_tostring(L, -1);
MessageBox(0, TEXT(pErrorMsg), TEXT("提示"), MB_OK);
lua_close(L);
}
if (lua_isnumber(L, -1)) //取值输出
{
double fValue = lua_tonumber(L, -1);
FrameRect(hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH));
DrawText(hdc, TEXT(buf),-1, &rc, DT_LEFT);
EndPaint(wnd, &ps);
}
lua_close(L);
}
return 0;
}
return DefWindowProc(wnd, msg, wp, lp);
}
int run()
{
MSG msg = { 0 };
BOOL bRet = 1;
while ((bRet = GetMessage(&msg, 0, 0, 0)) != 0)
{
if (bRet == -1)
{
MessageBox(0, "接受消息失败", 0, 0);
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
相关推荐
C++ zlib库源码编译及简单使用(VS2019)
C++ zlib库源码编译及简单使用(VS2019)
Dev-C++中文乱码终极解决方案:全链路UTF-8配置指南
字符编码是计算机处理文本信息的基础,它定义了字符与二进制数据之间的映射规则。在Windows平台的C/C++开发中,由于历史原因,系统默认的GBK编码与现代通用的UTF-8编码并存,导致编码错位问题频发。其核心原理在于源代码文件编码、编译器解释编码和终端显示编码三个环节的不匹配。解决编码问题的技术价值在于确保程序内外部数据表示的一致性,避免乱码,提升代码的可移植性和可维护性。在应用场景上,尤其在使用Dev-C++等传统IDE进行中文字符串输出、文件读写时,编码配置至关重要。本文聚焦于通过配置编辑器、编译器参
C/C++代码安全入门:Flawfinder静态分析工具实战指南
在软件开发中,静态代码分析是保障应用安全性的基础技术手段,其核心原理是通过自动化工具在不运行程序的情况下检查源代码,识别潜在的安全漏洞和编码缺陷。这项技术的核心价值在于将安全问题左移,在开发早期发现并修复风险,显著降低后期修复成本和安全事件概率。Flawfinder作为一款轻量级、基于模式匹配的C/C++静态分析工具,通过内置的漏洞规则库快速扫描代码,精准识别如缓冲区溢出、格式化字符串漏洞等常见高危问题。它特别适合集成到vscode配置c/c++开发环境或CI/CD流水线中,为开发者提供即时反馈,有效培养安
C++ vs2015 x64编译使用libevent 测试项目
1 环境:vs2015,x64,libevent 2 内容:解压后Third_Part为libevent静态库,测试项目为x64位,debug/release均可运行
protobuf 在 linux 和window 安装教程,
2. protobuf的安装 2.1 windows 平台 (vs2017) 安装protobuf 下载protobuf的C++版本的源代码,地址:https://github.com/google/protobuf/releases 下载 protobuf-cpp-3.8.0.zip/tar.gz 这个包 解压源码 (路径不要带中文) 安装cmake,下载地址:https://cmake.org/download/ 使用cmake 生成 vs2017 工程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h3PXM0gS-1582102235288)(asset


