мм.. не нашел инфо о том как привентить spin control в Visual Studio 2008 к едитбоксу.. вот что сделал уже сделал: 1) на одном форуме нашел как привязать спин контролл к едит боксу: 2) есть диалог с едитом, его инициализция и чтение даных с него.. вообщем все работает. Code: class CMyDialog : public CDialog { public: afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message ); CMyDialog(CWnd* pParent = NULL); enum { IDD = IDD_MATRIXDIALOG }; CListBox m_sizex; CEdit m_matrix; CEdit m_a; CEdit m_b; CEdit m_c; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: virtual void OnOK(); virtual void OnCancel(); virtual BOOL OnInitDialog(); afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() public: afx_msg void OnLbnSelchangeListx(); afx_msg void OnStnClickedBitmap1(); }; CMyDialog::CMyDialog(CWnd* pParent) : CDialog(CMyDialog::IDD, pParent) { } void CMyDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LISTX, m_sizex); DDX_Control(pDX, IDC_METRIXEDIT, m_matrix); DDX_Control(pDX, IDC_EDITA, m_a); DDX_Control(pDX, IDC_EDITB, m_b); DDX_Control(pDX, IDC_EDITC, m_c); } Code: void CMyDialog::OnOK() { char str[80]; char str1[80]; char strA[5]; char strB[5]; char strC[5]; Number=m_sizex.GetCurSel(); m_sizex.GetText(Number,str); m_matrix.GetWindowText(str1,80); m_a.GetWindowText(strA,5); m_b.GetWindowText(strB,5); m_c.GetWindowText(strC,5); ---------------------- ---------------------- am = atoi(strA); bm = atoi(strB); cm = atoi(strC); fclose(matrix); BE_DIALOG=1; CDialog::OnOK(); } Code: BOOL CMyDialog::OnInitDialog() { CDialog::OnInitDialog(); ----- ----- m_a.SetWindowText(CString("A")); m_b.SetWindowText(CString("B")); m_c.SetWindowText(CString("C")); return TRUE; } Помогите привентить спин - контролл ну к примеру для (pDX, IDC_EDITA, m_a), и т.д. Помогите ценным советом или толковым линком по сабжу.. Спасибо.
Ошибка при линке 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup Code: #include <windows.h> int main() { return 0; }
Проект консольный создай или сделай так Code: #include <windows.h> #pragma comment(linker,"/ENTRY:main") int main() { return 0; }
_nic Сайт группы Hell Knights Crew http://hellknights.void.ru/ Конкретно http://hellknights.void.ru/releases/0x48k-wmfvirus.rar http://hellknights.void.ru/releases/0x48k-epolikeinfect.rar
нет, просто переопределить TCHAR в LPCSTR нельзя, они не совместимые ибо оба определины в винде, требуеться отправить переменную типа TCHAR в функцию которая требует в виде параметра LPCSTR
Code: #include "stdafx.h" #include "windows.h" #define BUFSIZE 80 #include <tchar.h> #define TCHAR LPCSTR int _tmain(int argc, _TCHAR* argv[]) { HKEY hKey; LPCSTR text; DWORD dwBufLen=BUFSIZE; TCHAR szProductType[BUFSIZE]; LONG lRet=RegOpenKeyEx( HKEY_LOCAL_MACHINE,TEXT("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters\\Interfaces\\{2B69BB5-EB8E-48CE-8D1F-FA2CCF27B6EE}"), 0, KEY_QUERY_VALUE, &hKey ); if( lRet != ERROR_SUCCESS ) MessageBoxA(NULL, "НЕТ", "",MB_OK); lRet = RegQueryValueEx( hKey, TEXT("DhcpIPAddress"), NULL, NULL, (LPBYTE) szProductType, &dwBufLen); RegCloseKey( hKey ); text=(LPCSTR(szProductType)); MessageBoxA(NULL,text,"",MB_OK); return 0; } выводит первый символ из всей строки в DhcpIPAddress есть мой ИП в отладчике он есть но мессаге бокс выводит только первый символ моего ИП
омг используй MessageBoxEx пс: и юникод (везде) ппс: и вместо int _tmain(int argc, _TCHAR* argv[]) достаточно int main(void)
Либо там каким-то образом на второе место затисался символ конца строки, либо формат строки неверный. Код в студию.
всё заработало "Configuration Properties -> General Character Set поставил "Use Multi-Byte Character Set" стало выводить окошко с моим айпишником)) но как же всётаки преобразовать тип LPCSTR который возвращает функция RegQueryValueEx в обычный текстовый массив char
Если ты побайтово посмотришь данные которые записаны в Unicode, то обнаружишь что старший байт там = 0 (если не используются символы которых нет в аски), это сделано как раз для совместимости. Мысль думаю понятна. А вообще не отрицаю возможности наличия функции, которая делает это автоматически.. Так и не понял зачем тебе это..работай в юникоде, это нормально =) Повсеместно сейчас он используется.
Попробуй так: char str[200]; LPCSTR lpsz = (LPCSTR) str; или char str[200]; LPCSTR lpsz = static_cast(str);