最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

WINCC6.2

[复制链接]
查看2536 | 回复11 | 2023-4-17 09:33:05 | 显示全部楼层 |阅读模式
#include "apdefap.h"

int gscAction( void )
{
#pragma option(mbcs)
static BOOL QRR = TRUE;
#pragma code("winmm.dll")
void WINAPI PlaySoundA(char*pszSound,char*hmode,DWORD dwFlag);
#pragma code()


if(QRR)
    {
        PlaySoundA("c:\\Alarm03.wav", NULL, 3);

    }
    else
    {
        PlaySoundA("c:\\Alarm04.wav", NULL, 1);

    }
return 0;
}
这个WINCC脚本的含义

回复

使用道具 举报

chatGPT_小柔 | 2023-4-17 09:33:12 | 显示全部楼层
这个WINCC脚本定义了一个名为"gscAction"的函数,其作用是播放两种不同的警报声音。如果QRR变量的值为TRUE,则播放"c:\Alarm03.wav"文件;否则,播放"c:\Alarm04.wav"文件。这里使用了Winmm.dll库中的PlaySoundA函数来实现播放音乐的功能。该函数的第一个参数指定音乐文件的路径,第二个参数为NULL表示默认使用Windows自带的声音设备,第三个参数为播放标志,3表示同时播放多个声音文件。最后,该函数返回0表示执行成功。
回复

使用道具 举报

这般难离舍 | 2023-4-17 09:41:36 | 显示全部楼层
使用并修改此函数实现如下功能:
QRR变量的值为TRUE,则播放"c:\Alarm03.wav"文件;
QRR变量的值为false;则不播放。
回复

使用道具 举报

chatGPT_小柔 | 2023-4-17 09:41:45 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=3039&ptid=1319][color=#999999]这般难离舍 发表于 2023-04-17 09:41[/color][/url][/size]
使用并修改此函数实现如下功能:
QRR变量的值为TRUE, ...[/quote]

#include "apdefap.h"

int gscAction( void ){
    #pragma option(mbcs)
    static BOOL QRR = TRUE;
   
    if(QRR) {         
        PlaySoundA("c:\\Alarm03.wav", NULL, 3);
    }
     
    return 0;
}

int main() {
    QRR = false;
    gscAction();
    return 0;
}
//这里假设main函数在代码中调用gscAction函数进行播放控制

//修改后的代码如下:
#include "apdefap.h"

int gscAction(BOOL QRR){
    #pragma option(mbcs)
    if(QRR) {         
        PlaySoundA("c:\\Alarm03.wav", NULL, 3);
    }
     
    return 0;
}

int main() {
    BOOL QRR = TRUE;
    gscAction(QRR); //播放警报声音
    QRR = false;
    gscAction(QRR); //不播放警报声音
    return 0;
}
//使用gscAction函数来控制是否播放警报声音
回复

使用道具 举报

这般难离舍 | 2023-4-17 09:48:57 | 显示全部楼层
#include "apdefap.h"

int gscAction(BOOL QRR)
{
    #pragma option(mbcs)
    if(QRR) {         
        PlaySoundA("c:\\Alarm03.wav", NULL, 3);
    }
     
    return 0;
}

int main()
{
    BOOL QRR = TRUE;
    gscAction(QRR);
    QRR = false;
    gscAction(QRR);
    return 0;
}
这样编译后 出错
line 7 :error (003f) : undefined identifier 'playsoundA'
line 7 :error (0066) : 'playsoundA' is not a function
line 17 :error (003f) :  undefined identifier 'false'
回复

使用道具 举报

chatGPT_小柔 | 2023-4-17 09:49:06 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=3041&ptid=1319][color=#999999]这般难离舍 发表于 2023-04-17 09:48[/color][/url][/size]
#include "apdefap.h"

int gscAction(BOOL QRR)
{
   ...[/quote]

这个错误表明PlaySoundA函数没有被正确地定义。可以尝试在头文件中添加对winmm库的引用,以保证该函数能够被正确地链接。

请尝试将以下代码添加到文件开头,以添加winmm库的引用:

[code]++
#pragma comment(lib, "winmm.lib")[/code]

此外,第17行有一个语法错误。您需要将“false”改为“FALSE”,因为BOOL类型只接受TRUE和FALSE作为其值。
回复

使用道具 举报

这般难离舍 | 2023-4-17 10:00:40 | 显示全部楼层
#include "apdefap.h"

int gscAction(BOOL QRR)
{
    #pragma option(mbcs)
#pragma code("winmm.dll")
    if(QRR) {         
        PlaySoundA("c:\\Alarm03.wav", NULL, 3);
    }
     
    return 0;
}

int main()
{
    BOOL QRR = TRUE;
    gscAction(QRR);
    QRR = FALSE;
    gscAction(QRR);
    return 0;
}
编译出错:
line 8 :error (003f) : undefined identifier 'playsoundA'
line 8 :error (0066) : 'playsoundA' is not a function
回复

使用道具 举报

chatGPT_小柔 | 2023-4-17 10:00:52 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=3049&ptid=1319][color=#999999]这般难离舍 发表于 2023-04-17 10:00[/color][/url][/size]
#include "apdefap.h"

int gscAction(BOOL QRR)
{
   ...[/quote]

请尝试加上相应的头文件包含语句#include <Windows.h>来确保PlaySoundA函数的定义被正确地包含。同时,你需要将#pragma code("winmm.dll")和#pragma code()的语句之间的代码转移到函数内部,在需要用到的时候再动态调用该代码库中的函数。例如:#include "apdefap.h"#include <Windows.h>//添加头文件int gscAction(BOOL QRR){    if(QRR) {        //在需要时动态加载winmm.dll库        HMODULE hmodule = LoadLibrary("winmm.dll");        if (hmodule)        {            typedef void (WINAPI *pPlaySoundA)(LPCSTR, HMODULE, DWORD);            pPlaySoundA PlaySoundAFunc = (pPlaySoundA)GetProcAddress(hmodule, "PlaySoundA");            if (PlaySoundAFunc)            {                PlaySoundAFunc("c:\\Alarm03.wav", NULL, 3);            }            FreeLibrary(hmodule);        }    }         return 0;}int main() {    BOOL QRR = TRUE;    gscAction(QRR);    QRR = FALSE;    gscAction(QRR);     return 0;}
回复

使用道具 举报

这般难离舍 | 2023-4-17 10:01:50 | 显示全部楼层
修改后的完整代码可以条例清晰的写一下吗
回复

使用道具 举报

chatGPT_小柔 | 2023-4-17 10:02:03 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=3051&ptid=1319][color=#999999]这般难离舍 发表于 2023-04-17 10:01[/color][/url][/size]
修改后的完整代码可以条例清晰的写一下吗 ...[/quote]

是的,以下是您所需的完整代码:

[code]#include "apdefap.h"
#include <Windows.h>

// 添加头文件和相应的函数定义
typedef void (WINAPI *pPlaySoundA)(LPCSTR, HMODULE, DWORD);
#pragma comment(lib, "winmm.lib")

int gscAction(BOOL QRR)
{
    if(QRR)
    {
        // 在需要时动态加载 winmm.dll 库
        HMODULE hmodule = LoadLibrary("winmm.dll");
        if (hmodule)
        {
            pPlaySoundA PlaySoundAFunc = (pPlaySoundA)GetProcAddress(hmodule, "PlaySoundA");
            if (PlaySoundAFunc)
            {
                PlaySoundAFunc("c:\\Alarm03.wav", NULL, 3);
            }
            FreeLibrary(hmodule);
        }
    }
    return 0;
}

int main()
{
    BOOL QRR = TRUE;
    gscAction(QRR); // 播放警报声音
    QRR = FALSE;
    gscAction(QRR); // 不播放警报声音
    return 0;
}[/code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则