vopr
vopr
.+.婞諨昰丗届丄樶.﹎短暂啲/?/堕落,./-
关注数: 0
粉丝数: 20
发帖数: 7
关注贴吧数: 1
关于VB原程序转Delphi,应该如何转换 Public App_bRunning As Boolean ' 程序运行标志,启动时设成True,如果是False,则跳出事件检测循环 ' 主函数 Public Sub Main() '程序初始化 .............................. ' 主循环 App_bRunning = True Do While App_bRunning .......................................... ....................................... DoEvents Sleep 1 Loop ' 进程关闭处理 ............................................. End Sub
笔记本支持最大硬盘容量 本人的华硕A8H56JS_sl的笔记本进水了'硬盘坏了'想更换个大点的硬盘'但我不知道本本最大支持多大容量'那个师傅知道'给说下' 谢谢了
Delphi如何调用C++的DLL Delphi如何调用C++的DLL 源代码如下: Pipe.cpp /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include #ifdef _WIN32 #include #else #include #endif #include "base2.h" #include "pipe.h" inline void ParsePath(char *szDir, char *szFile, const char *szPath) { char *lpSeperator; strcpy(szDir, szPath); lpSeperator = strrchr(szDir, PATH_SEPERATOR); if (lpSeperator == NULL) { szDir[0] = '\0'; strcpy(szFile, szPath); } else { *lpSeperator = '\0'; strcpy(szFile, lpSeperator + 1); } } #ifdef _WIN32 #ifdef PIPE_DLL extern "C" __declspec(dllexport) VOID WINAPI PipeOpen(PipeStruct *lppipe, LPCSTR szProcFile); extern "C" __declspec(dllexport) VOID WINAPI PipeClose(PipeStruct *lppipe); extern "C" __declspec(dllexport) LPSTR WINAPI PipeLineInput(PipeStruct *lppipe); extern "C" __declspec(dllexport) VOID WINAPI PipeLineOutput(PipeStruct *lppipe, LPCSTR szLineStr); VOID WINAPI PipeOpen(PipeStruct *lppipe, LPCSTR szProcFile) { lppipe->Open(szProcFile); } VOID WINAPI PipeClose(PipeStruct *lppipe) { lppipe->Close(); } LPSTR WINAPI PipeLineInput(PipeStruct *lppipe) { static char szBuffer[LINE_INPUT_MAX_CHAR]; if (lppipe->LineInput(szBuffer)) { return szBuffer; } else { return NULL; } } VOID WINAPI PipeLineOutput(PipeStruct *lppipe, LPCSTR szLineStr) { lppipe->LineOutput(szLineStr); } #endif void PipeStruct::Open(const char *szProcFile) { DWORD dwMode; HANDLE hStdinRead, hStdinWrite, hStdoutRead, hStdoutWrite; SECURITY_ATTRIBUTES sa; STARTUPINFO si; PROCESS_INFORMATION pi; char szFileDir[PATH_MAX_CHAR], szFileName[PATH_MAX_CHAR], szCurDir[PATH_MAX_CHAR]; if (szProcFile == NULL) { hInput = GetStdHandle(STD_INPUT_HANDLE); hOutput = GetStdHandle(STD_OUTPUT_HANDLE); bConsole = GetConsoleMode(hInput, &dwMode); } else { GetCurrentDirectory(PATH_MAX_CHAR, szCurDir); ParsePath(szFileDir, szFileName, szProcFile); SetCurrentDirectory(szFileDir); sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; CreatePipe(&hStdinRead, &hStdinWrite, &sa, 0); CreatePipe(&hStdoutRead, &hStdoutWrite, &sa, 0); si.cb = sizeof(STARTUPINFO); si.lpReserved = si.lpDesktop = si.lpTitle = NULL; si.dwFlags = STARTF_USESTDHANDLES; si.cbReserved2 = 0; si.lpReserved2 = NULL; si.hStdInput = hStdinRead; si.hStdOutput = hStdoutWrite; si.hStdError = hStdoutWrite; CreateProcess(NULL, (LPSTR) szFileName, NULL, NULL, TRUE, DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP | IDLE_PRIORITY_CLASS, NULL, NULL, &si, &pi); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); CloseHandle(hStdinRead); CloseHandle(hStdoutWrite); hInput = hStdoutRead; hOutput = hStdinWrite; bConsole = FALSE; SetCurrentDirectory(szCurDir); } if (bConsole) {
1
下一页