cjwcj 发表于 2009-6-23 21:01:48

关于SKD

关于一个SDK的问题
不知道破解的版本是否带SDK呢?
      我在网上偶然看见一个程序,觉得写得很好,是一个关于用CVI调用计算器与文本编辑器的程序,我试着编译了一下,总是出错, 是个连接错误,说程序中的ShellExecute()未定义,这个函数是<shellapi.h>中的,这个头文件属于CVI的SDK,我已把头文件加入工程中,为何还会出现这个连接错误呢?请CPUBBS指点一下!谢谢!
      程序如下:

#include "windows.h"
#include "shellapi.h"
#include "test1.h"



static int handle;
static int panelHandle;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "test1.uir", PANEL)) < 0)
return -1;

GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle);


DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK calc (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
HWND hwnd;
switch (event)
{
case EVENT_COMMIT:
   ShellExecute((HWND)handle, "open", "calc.exe", NULL, NULL,SW_NORMAL);
   hwnd = FindWindow(NULL, "计算器");
   SetParent(hwnd, (HWND)handle);
   break;
}
return 0;
}
int CVICALLBACK notepad (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
HWND hwnd;
switch (event)
{
case EVENT_COMMIT:
   ShellExecute((HWND)handle, "open", "notepad.exe", NULL, NULL,SW_NORMAL);
   hwnd = FindWindow(NULL, "无标题 - 记事本");
   SetParent(hwnd, (HWND)handle);
   break;
}
return 0;
}
int CVICALLBACK QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
   QuitUserInterface (0);
   break;
}
return 0;
}
哎,一个不小心发到了LV中去了,晕

netcreature 发表于 2009-6-24 16:34:20

呵呵!这是王建新博客上的例子吧!
从代码来看,你连头文件都没加全,还真不知道你的工程文件时怎么建立的?!

cjwcj 发表于 2009-6-24 20:22:32

请问上面那位高手我缺什么头文件啊?我也从来没说过这个程序是我自己写的.
头文件我加全了,问题也解决了,我没有加库文件shell.dll于shell.lib
论坛上说,调用windows自带的程序只要加头文件,是不对的.

cjwcj 发表于 2009-6-24 20:24:16

还请斑竹本着帮忙解决问题的心思,而不是取笑人!我们都是很支持这个论坛的!

netcreature 发表于 2009-6-26 14:04:15

楼主误会了!
1、你在帖子中已经说是在网上看到的!——我只是印证一下。
2、因为你指名要cpubbs回答,就不能再指责别人不回答你的问题!

cjwcj 发表于 2009-6-28 12:53:46

既然没指名让你回答,你就没必要来跟贴;
既然不是本着回答问题的责任;也要本着做人厚道的责任;
就算回贴,也不必要取笑别人;

cjwcj 发表于 2009-6-28 13:05:54

请不要偷换概念
1.既然我已诚实地说是网上看见的,请问你还要印证什么呢?印证这个又有什么意义?
2.我并没指责你没回答我问题!
哎,冤怨相报何时了啊,祝netcreature自求多福,越走越远!

xiaomenghaohao 发表于 2009-8-7 11:12:25

http://hi.baidu.com/jakey0000/blog/item/85e23e39360e6df5b311c770.html 这上边是我调试成功的例子。你可以参考一下。

rebelwj 发表于 2009-8-7 22:53:02

楼主需要提高心理承受能力,版主的话虽然不是怎么好听,但是也没有什么的。
在工作中难听的话可能更多。
看看在工程里边有没有加lib文件,还有头文件shellapi.h里边有没有声明好缺少的那个函数。
页: [1]
查看完整版本: 关于SKD