336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Visual Studio 2013 갑자기 느려질때




Microsoft SQL Server 를 지우면서


관련 프로그램을 모두 지웠더니


Visual Studio 가 엄청 느려졌다





재설치를 하려고 보니





다음과 같은 에러 발생



Microsoft SQL Server Compact 4.0


https://www.microsoft.com/ko-kr/download/details.aspx?id=17876



를 설치하고 나니 원래의 속도로 작동 됨.



AES Block cipher modes

Programming/C,CPP,CS 2017. 3. 29. 09:50 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

AES Block cipher modes




Electronic Codebook (ECB)



Cipher Block Chaining (CBC)





Propagating Cipher Block Chaining (PCBC)




Cipher Feedback (CFB)




Counter (CTR)






Output Feedback (OFB)







출처 : https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation










336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(518,5): error MSB8008: 지정된 플랫폼 도구 집합(v120)이 설치되지 않았거나 올바르지 않습니다. 지원되는 플랫폼 도구 집합 값이 선택되었는지 확인하십시오.







프로젝트를 Visual Studio 2013 에서 빌드를 하다가


Visual Studio 2010 에서 빌드를 시도하니



이렇게 에러가 발생한다.










플랫폼 도구 집합이 빌드할 Visual Studio와 버전이 맞지 않다










플랫폼 도구 집합을 <부모 또는 프로젝트 기본값에서 상속> 으로 바꾸면 잘 돌아간다.












'Programming > C,CPP,CS' 카테고리의 다른 글

Visual Studio 2013 갑자기 느려질때  (0) 2017.04.04
AES Block cipher modes  (0) 2017.03.29
[jsoncpp] getList Names  (0) 2017.02.06
임계영역 설정 Ctirical Section  (0) 2016.11.07
Jsoncpp 주의 사항  (0) 2016.11.01
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java 에서


notepad.exe 를



Runtime.getRuntime().exec , ProcessBuilder 로 실행하기







notepad.exe 를 특정 폴더로 복사하고




ProcessBuilder launcher = new ProcessBuilder();

launcher.redirectErrorStream(true);

launcher.command("\\\\192.168.10.17\\tt\\notepad.exe","\\\\192.168.10.17\\tt\\test.jsp");

p = launcher.start();

 

 

 

                                       

 

p = Runtime.getRuntime().exec("\\\\192.168.10.17\\tt\\notepad.exe \\\\192.168.10.17\\tt\\test.jsp", null );

                                        


이런 형태로 실행 할때,



notepad.exe 가 실행되지 않는경우



notepad.exe 가 존재하는 폴더에 ko-KR\notepad.exe.mui 파일도 system32에서 가져와서 두면 실행이 된다.






'Programming > JAVA,JSP' 카테고리의 다른 글

window.open('xxxx.html', 'modal') close  (0) 2019.03.06
JNA Error  (0) 2018.02.27
Java CreateProcess Error=2 AccessControlException  (0) 2017.02.28
Java Applet 설정  (0) 2017.02.28
Java SocketServer control Image, DBConnect, String  (1) 2016.10.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java CreateProcess Error=2 AccessControlException 




Java 1.5 JRE 에서는 IOException CreatProcess Error=2 로 발생하고


Java 1.8 JRE 에서는 AccessControlException access denied java.io.FilePermission 으로 발생한다.






둘다, Java Permission 문제






Jre 경로에서


Jre*.*.*\lib\sercurity\java.policy 파일에




grant codeBase * {

*

}


grant {


        permission java.security.AllPermission; 를 추가하면 된다.

*

*

*

}

Java Applet 설정

Programming/JAVA,JSP 2017. 2. 28. 12:58 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java Applet 설정





Java Applet 구동 시





Apache 서버에




AmitApplet.java 를 AmitJavaApplication.jar 로 Export(Java->JAR file) 한다.


package test.Amit;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Map;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class AmitApplet extends JApplet {

	public void init() {

		try {
			for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
				if ("Nimbus".equals(info.getName())) {
					javax.swing.UIManager.setLookAndFeel(info.getClassName());
					break;
				}
			}
		} catch (ClassNotFoundException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (InstantiationException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (IllegalAccessException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (javax.swing.UnsupportedLookAndFeelException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		}
		// 

		try {
			java.awt.EventQueue.invokeAndWait(new Runnable() {
				public void run() {
					initComponents();
				}
			});
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void initComponents() {

		// String defaultCmd = "\\\\192.168.10.17\\tt\\notepad.exe";
		final String defaultCmd = "notepad.exe test.jsp";
		commandTextField = new JTextField();
		logTextArea = new JTextArea();
		runtimeButton = new JButton("getRuntime");
		processBuilderButton = new JButton("processBuilder");
		JPanel topPanel = new JPanel();

		setLayout(new BorderLayout());

		topPanel.setLayout(new GridLayout(4, 1));
		topPanel.add(new JLabel("Command"));
		topPanel.add(commandTextField);
		topPanel.add(runtimeButton);
		topPanel.add(processBuilderButton);
		add(BorderLayout.NORTH, topPanel);
		add(BorderLayout.CENTER, logTextArea);

		runtimeButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {
					try {
						Runtime.getRuntime().exec(defaultCmd);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				} else {
					try {
						Runtime.getRuntime().exec(commandTextField.getText());
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
		processBuilderButton.addActionListener(new ActionListener() {
			public synchronized void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {

					try {
						ProcessBuilder launcher = new ProcessBuilder();
						Map environment = launcher.environment();
						launcher.redirectErrorStream(true);
						launcher.directory(new File("\\\\192.168.10.17\\tt\\"));

						// environment.put("test.jsp", defaultCmd);
						launcher.command("notepad.exe");
						Process p = launcher.start(); // And launch a new
														// process

					} catch (Exception e2) {
						logTextArea.setText(e2.getMessage());
						e2.printStackTrace();
					}
				} else {
					try {
						ProcessBuilder pb = new ProcessBuilder(commandTextField.getText());
						pb.start();

					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
	}

	@SuppressWarnings("unchecked")
	public void launchScript(String cmd, String args) {
		try {
			System.out.println("args value : = " + args);
			System.out.println("cmd value : = " + cmd);
			System.out.println("Full command:  = " + cmd + " " + args);
			if (cmd != null && !cmd.trim().equals("")) {
				if (args == null || args.trim().equals("")) {
					final String tempcmd = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd);
				} else {
					final String tempargs = args;
					final String tempcmd1 = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd1 + " " + tempargs);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd + " " + args);
				}
			} else {
				System.out.println("execCmd parameter is null or empty");
			}
		} catch (Exception e) {
			System.out.println("Error executing command --> " + cmd + " (" + args + ")");
			System.out.println(e);
		}
	}

	JButton runtimeButton;
	JButton processBuilderButton;
	JTextField commandTextField;
	JTextArea logTextArea;
}






test.jsp 를 준비한다.




<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>My first WebApplication using NetBeansIDE</title>

    </head>

    <body>

        <h1>Hello World!</h1>

        <br />

        <p>WebApplication using NetBeansIDE...</p>

        

        <!-- Embedding Applet -->

<applet code="test.Amit.AmitApplet" archive="AmitJavaApplication.jar" width="400" height="350"></applet>

    </body>

</html>









Apache 는 Apache 비트에 맞는 Java 를 연결시키고


Applet 은 32비트에서 돌아간다

(컴퓨터에 32비트 Java JRE가 설치되어 있어야한다.)








Apache ROOT 폴더의 구조






Config















[MFC] Dialog 닫기 (OnOK/EndDialog)

Programming/MFC 2017. 2. 8. 16:54 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[MFC] Dialog 닫기 (OnOK/EndDialog)


 
1. OnOK()
 
2. OnClose()
 
3. EndDialog()
 
4. DestoryWindow()


CDialog::OnOK

Override this method to perform actions when the OK button is activated. If the dialog box includes automatic data validation and exchange, the default implementation of this method validates the dialog box data and updates the appropriate variables in your application.

If you implement the OK button in a modeless dialog box, you must override the OnOK method and call DestroyWindow inside it. Do not call the base-class method, because it calls EndDialog which makes the dialog box invisible but does not destroy it.

CDialog::EndDialog

Call this member function to terminate a modal dialog box.



virtual void CDialog::OnOk();
호출 : 사용자가 OK버튼을 누르면 호출된다. (id값이 IDOK인 버튼)
        즉, OnOk()함수는 OK버튼클릭 메시지 핸들러라고 할 수 있다.
사용 : 컨트롤 값을 읽거나 값의 타당성을 검사한 후 Dialog 닫기





다이얼로그를 닫을때 OnOK 로 닫는것 [확인(OK)] 버튼을 눌러서 닫는 것



EndDialog 는 다이얼로그를 강제로 중지시킨다.








[Python] List 정렬 프로그램 구현

Programming/Python 2017. 2. 6. 20:30 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Python] List 정렬 프로그램 구현





List 에 append 로 integer 값을 하나씩 넣은 후


오름차순 정렬하여 출력하는 프로그램








import sys

numberList =[]


for j in range(10):
    i = int(input("input: "))
    numberList.append(i)
    s1= 0
    print("Ori: {0}".format(numberList))
    while s1 < j:
        if numberList[s1] > numberList[s1+1]:
            numberList[s1] ^= numberList[s1+1]
            numberList[s1+1] ^= numberList[s1]
            numberList[s1] ^= numberList[s1+1]
        s1 = s1 + 1
    while s1 > 0:
        if numberList[s1] < numberList[s1-1]:
            numberList[s1] ^= numberList[s1-1]
            numberList[s1-1] ^= numberList[s1]
            numberList[s1] ^= numberList[s1-1]
        s1 = s1 - 1
    print("Sorted: {0}".format(numberList))

print(numberList)








import sys

numberList =[]
indexList =[]


for j in range(10):
    i = int(input("input: "))
    numberList.append(i)
    indexList.append(0)
    for k in range(len(numberList)-1):
        if i < numberList[k]:
            indexList[k] = indexList[k] + 1
        else:
            indexList[j] = indexList[j] + 1
    print("Ori: {0}".format(numberList))
    print("Sorted: {0}".format(indexList))
    for k1 in range(len(numberList)):
        for k2 in range(len(numberList)):
            if k1 == indexList[k2]:
                sys.stdout.write(str(numberList[k2]))
                sys.stdout.write(" ")
                break
    sys.stdout.write("\n")

print(numberList)






 

'Programming > Python' 카테고리의 다른 글

[Python/OpenCV] Near-Duplicate Image Detection #2  (0) 2020.06.02
[Python/OpenCV] Near-Duplicate Image Detection #1  (0) 2020.06.02
[Python 3.6] * 찍기  (0) 2017.02.02

[jsoncpp] getList Names

Programming/C,CPP,CS 2017. 2. 6. 17:07 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


"List" : {

         "value1" : "10.1.1.1",

         "value2" : "0.0.0.0"

      }




위의 경우에서 "10.1.1.1" , "0,0,0,0" 을 얻을 때에는,




for (auto itr : configuration_value.get("List", ""))

{

char* buf = (char*)malloc(BUFSIZE);

try{

sprintf_s(buf, BUFSIZE, "%s", itr.asString().c_str());

}

   }




위의 경우에서 "value1" , "value2" 을 얻을 때에는,



for ( auto const& id : configuration_value.get("List", "").getMemberNames() ) {

std::cout << id << std::endl;

}

[Python 3.6] * 찍기

Programming/Python 2017. 2. 2. 19:56 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Python 3.6] * 찍기




import sys

i = 0
k = 0
j = int(input("input: "))
while i < j :
    while k <= i :
        sys.stdout.write("*")
        k = k + 1
    i = i + 1
    k = 0
    sys.stdout.write("\n")

i = 0
while i < j - 1 :
    while k < j - i - 1:
        sys.stdout.write("*")
        k = k + 1
    i = i + 1
    k = 0
    sys.stdout.write("\n")





input: 3

*

**

***

**

*