精华内容
下载资源
问答
  • 代码片段,在windows下用C语言调用文件选择对话框,以备忘 #define DEFAULT_DIR "" char extraction_path[MAX_PATH] = DEFAULT_DIR; /* * Browse for a folder and update the folder edit box * ...

    代码片段,在windows下用C语言调用文件选择对话框,以备忘


     

    #define DEFAULT_DIR ""
    char extraction_path[MAX_PATH] = DEFAULT_DIR;
    
    
    /*
     * Browse for a folder and update the folder edit box
     * Will use the newer IFileOpenDialog if *compiled* for Vista or later
     */
    void browse_for_folder(void) {
    
    	BROWSEINFOW bi;
    	LPITEMIDLIST pidl;
    
    #if (_WIN32_WINNT >= 0x0600)	// Vista and later
    	WCHAR *wpath;
    	size_t i;
    	HRESULT hr;
    	IShellItem *psi = NULL;
    	IShellItem *si_path = NULL;	// Automatically freed
    	IFileOpenDialog *pfod = NULL;
    	WCHAR *fname;
    	char* tmp_path = NULL;
    
    	// Even if we have Vista support with the compiler,
    	// it does not mean we have the Vista API available
    	INIT_VISTA_SHELL32;
    	if (IS_VISTA_SHELL32_AVAILABLE) {
    		hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_INPROC,
    			&IID_IFileOpenDialog, (LPVOID)&pfod);
    		if (FAILED(hr)) {
    			dprintf("CoCreateInstance for FileOpenDialog failed: error %X", hr);
    			pfod = NULL;	// Just in case
    			goto fallback;
    		}
    		hr = pfod->lpVtbl->SetOptions(pfod, FOS_PICKFOLDERS);
    		if (FAILED(hr)) {
    			dprintf("Failed to set folder option for FileOpenDialog: error %X", hr);
    			goto fallback;
    		}
    		// Set the initial folder (if the path is invalid, will simply use last)
    		wpath = utf8_to_wchar(extraction_path);
    		// The new IFileOpenDialog makes us split the path
    		fname = NULL;
    		if ((wpath != NULL) && (wcslen(wpath) >= 1)) {
    			for (i=wcslen(wpath)-1; i!=0; i--) {
    				if (wpath[i] == L'\\') {
    					wpath[i] = 0;
    					fname = &wpath[i+1];
    					break;
    				}
    			}
    		}
    
    		hr = (*pSHCreateItemFromParsingName)(wpath, NULL, &IID_IShellItem, (LPVOID)&si_path);
    		if (SUCCEEDED(hr)) {
    			if (wpath != NULL) {
    				hr = pfod->lpVtbl->SetFolder(pfod, si_path);
    			}
    			if (fname != NULL) {
    				hr = pfod->lpVtbl->SetFileName(pfod, fname);
    			}
    		}
    		safe_free(wpath);
    
    		hr = pfod->lpVtbl->Show(pfod, hMain);
    		if (SUCCEEDED(hr)) {
    			hr = pfod->lpVtbl->GetResult(pfod, &psi);
    			if (SUCCEEDED(hr)) {
    				psi->lpVtbl->GetDisplayName(psi, SIGDN_FILESYSPATH, &wpath);
    				tmp_path = wchar_to_utf8(wpath);
    				CoTaskMemFree(wpath);
    				if (tmp_path == NULL) {
    					dprintf("Could not convert path");
    				} else {
    					safe_strcpy(extraction_path, MAX_PATH, tmp_path);
    					safe_free(tmp_path);
    				}
    			} else {
    				dprintf("Failed to set folder option for FileOpenDialog: error %X", hr);
    			}
    		} else if ((hr & 0xFFFF) != ERROR_CANCELLED) {
    			// If it's not a user cancel, assume the dialog didn't show and fallback
    			dprintf("could not show FileOpenDialog: error %X", hr);
    			goto fallback;
    		}
    		pfod->lpVtbl->Release(pfod);
    		return;
    	}
    fallback:
    	if (pfod != NULL) {
    		pfod->lpVtbl->Release(pfod);
    	}
    #endif
    	INIT_XP_SHELL32;
    	memset(&bi, 0, sizeof(BROWSEINFOW));
    	bi.hwndOwner = hMain;
    	bi.lpszTitle = L"Please select the installation folder:";
    	bi.lpfn = browseinfo_callback;
    	// BIF_NONEWFOLDERBUTTON = 0x00000200 is unknown on MinGW
    	bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS |
    		BIF_DONTGOBELOWDOMAIN | BIF_EDITBOX | 0x00000200;
    	pidl = SHBrowseForFolderW(&bi);
    	if (pidl != NULL) {
    		CoTaskMemFree(pidl);
    	}
    }


     

     

     

    转载于:https://www.cnblogs.com/dyllove98/p/3141072.html

    展开全文
  • C语言控制台界面调用系统的文件浏览对话框
  • C语言调用matlab文件的方法

    千次阅读 2014-12-02 18:35:53
    本文只介绍C和C++调用matlab的不同之处,具体的步骤请参考: ...C语言调用matlab的步骤 1、mcc -W lib:plotsintest-T link:lib sumandmultiply.m -C plotsintest是生成的lib文件的名称,sumandmulti

    本文只介绍C和C++调用matlab的不同之处,具体的步骤请参考:

    http://blog.csdn.net/angelahhj/article/details/41447857

    C语言调用matlab的步骤

    1mcc -W lib:plotsintest-T link:lib sumandmultiply.m -C

    plotsintest是生成的lib文件的名称,sumandmultiply.m是要编译的matlab文件

    如果不加-C的话,不能生成.ctf文件,VC工程下缺少这个文件可能导致错误。

    2、将生成的plotsintest.libplotsintest.h plotsintest.dllplotsintest.ctf文件拷贝到VC工程目录下

    3、加上必要的头文件包含和lib文件包含

     

    C语言中,调用该函数的格式如下:

    mlfSumandmultiply(nagout, mxArray ** out,mxArray *in);

    nagout表示输出参数的个数,out 是输出参数,in是输入参数。

    调用时,如果不加初始化函数,则会出现内存越界错误。调用的初始化函数为:

    sumandmultiplyInitialization();

    终止函数为:

    sumandmultiplyTerminate();

     

    C语言调用matlab常用函数:

    前面的文章中提到,C++调用的是mwArrayC语言调用的是mxArray

     mxArray*data = NULL;  //定义

    data = mxCreateDoubleMatrix(1,3,mxREAL);  //初始化为mn列的实数矩阵,对应的是复数

    double  *temp;

    double arr[] = {1.2, 2.3,3.4};

    memcpy(mxGetPr(data),arr,3*sizeof(double));  //data赋值

    #if 1

      temp =mxGetPr(data);    //获取指针

      printf(“%f\n%f\n%f\n”, temp[0], temp[1], temp[2]);

    #endif

    展开全文
  • C语言调用obj文件中的函数源代码

    热门讨论 2008-11-13 10:31:26
    利用C语言调用obj文件中的函数,来实现函数的功能。
  • 需要在要调用函数的文件中引入函数声明的头文件 main 程序 // An highlighted block #include <stdio.h> #include <Calculate.h> /* 函数声明 */ int max(int num1, int num2); int main() { printf...

    需要在要调用函数的文件中引入函数声明的头文件
    main 程序

    // An highlighted block
    #include <stdio.h>
    #include <Calculate.h>
    
    /* 函数声明 */
    int max(int num1, int num2);
    
    int main()
    {
        printf(" add:%d\n",add(2,3));
    
        extern int bia;
        printf(" main_bias:%d",bia);
    
        printf(" mul:%d",mul(3,4));
    
    
        return 0;
    }
    
    

    Caluculate.h

    int add(int num1, int num2);
    
    int mul(int num1,int num2);
    

    Caluculate.c

    #include <stdio.h>
    
    
    int add(int num1,int num2) {
    
        return num1 + num2;
    
    }
    
    int mul(int num1, int num2) {
     
        return num1 * num2;
    
    }
    
    展开全文
  • 废话不多说,直接上代码 #include<stdlib.h> int main() { system("zz.exe file.txt"); return 0; } 其中需要头文件stdlib.h,文件将执行zz.exe文件调用file.txt文件。 ...

    废话不多说,直接上代码

    #include<stdlib.h>
    
    int main()
    {
    	system("zz.exe file.txt");
    	return 0;
    }
    

    其中需要头文件stdlib.h,文件将执行zz.exe文件来调用file.txt文件。

    展开全文
  • C 语言调用matlab生成的DLL文件
  • C#调用C语言DLL文件示范 C#调用C语言DLL文件示范 C#调用C语言DLL文件示范
  • 我想在c中调用多个批处理文件,第一个start.bat获得管理员权限,并且使后面的批处理文件能在管理员权限下运行,请问可行吗?怎么做 最好留下代码,谢谢大侠了(我是学java的,对C不太熟悉,现在要用到了各位帮帮忙 ...
  • 要求用c语言写一个调用so文件的程序: 该程序中有一个循环(循环600次),每次循环启动一个线程,该线程去调用so文件。 请帖个例子程序,多谢了!
  • 2016/10/22 15:30 参考:http://blog.163.com/rongting_chen/blog/static/164906844201252354518462/ ... matlab版本:R2012a,64位,VS2010 1:C语言调用matlab引擎。  V
  • 1、C++中调用C语言程序 main.cpp文件 #include <iostream> #include "cfun.h" using namespace std; int main() { cout << "C++ Hello world!" << endl; cfun(); return 0; } #if 0 ...
  • c语言中引进数学函数无疑大大提高了我们的效率,而且操作简单,只需要在文件开头把math.h文件包含进去。我自己学习时简单的编写了个小程序,在其中调用了sqrt函数,但是我在对源文件进行编译时却出现了问题,终端...
  • C语言-文件调用

    千次阅读 2018-10-03 12:59:44
    这个程序实现了文件的自动生成和调用的功能,用一个简单的多实例A+B来说明 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main() { FILE *fp; int a,b,n=50; fp=(FILE*)fopen(&...
  • 1. C语言中的文件操作 1.1 打开文件 FILE* fopen(const char* path, const char* mode) path: 需要打开哪一个文件的路径加文件名称(可以不加路径, 默认打开是当前路径下的文件) mode: 以什么方式打开文件, r: ...
  • int system(const char *command);
  • C语言调用PyQT4源代码

    2014-02-28 03:08:35
    C语言调用PyQT4的界面,简单例子,代码里面调用了PyQT的主窗口。 包含pro文件用于qmake生成Makefile 包含说明文件
  • C语言调用机器码令实现 编写被调用C代码 #include <stdio.h> int add(int a,int b){ return a+b; } 编译,注意添加*-c*参数,不然会因为没有main函数报错 gcc -c add.c 获得编译后文件的机器码 ...
  • c语言调用api函数

    千次阅读 2017-10-28 13:41:52
    c语言中怎么调用windowsAPI函数, 要详细,请举个程序例子,不要说加个#include。这个我清楚 我的环境也是VC++,我想要一个c语言中怎么调用windows API的实例,谢谢! 比如messagebox()这个API函数在WINDOWS.H文件中...
  • 如何用C语言调用JAVA的类文件啊? 默认分类2008-05-21 10:50:43阅读64评论0 字号:大中小 订阅1 楼sallina( 回复于 2003-10-28 09:24:32 得分 30 public class Sample2{ public static int int...
  • 文章目录基础IO回忆c语言的文件操作接口fopenfclosefreadfwritefseek系统调用文件接口openclosereadwritelseek文件描述符&文件流指针重定向软硬链接文件系统 基础IO 回忆c语言的文件操作接口 fopen FILE *fopen...
  • C语言调用Lua脚本

    2013-03-20 20:57:47
    1.C语言调用Lua脚本。 C语言中调用Lua脚本的最开始的步骤是一样的,都是打开一个类似于*File的文件描述符之类的东西。 具体是这样的: lua_State*L=lua_open(); 然后加载运行库: 根据Lua版本的不同有以下几种...
  • 使用C语言调用python

    2017-06-11 10:09:07
    C语言代码 #include #include"Python.h" //这里要包含头文件 //C/C++中执行python文件 ... 想实现用C语言调用python 编译时报错: gcc test.c -o test -l/usr/include/python2.7/ -lpyhton2.7 ``` 求解决

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,367
精华内容 2,546
关键字:

c语言调用文件

c语言 订阅