Search Results

Search found 23804 results on 953 pages for 'void pointer'.

Page 310/953 | < Previous Page | 306 307 308 309 310 311 312 313 314 315 316 317  | Next Page >

  • Which Java library lets me initialize an object's properties from a properties file?

    - by Kjetil Ødegaard
    Is there a Java library that lets you "deserialize" a properties file directly into an object instance? Example: say you have a file called init.properties: username=fisk password=frosk and a Java class with some properties: class Connection { private String username; private String password; public void setUsername(String username) { this.username = username; } public void setPassword(String password) { this.password = password; } } I want to do this: Connection c = MagicConfigurator.configure("init.properties", new Connection()) and have MagicConfigurator apply all the values from the properties file to the Connection instance. Is there a library with a class like this?

    Read the article

  • Exception and Inheritance in JAVA

    - by user1759950
    Suppose we have this problem public class Father{ public void method1(){...} } public class Child1 extends Father{ public void method1() throws Exception{ super.method1(); ... } } Child1 extends Father and override method1 but given implementation Child1.method1 now throws a exception, this wont compile as override method can't throw new exceptions. What is the best solution? Propagate the required exception to the Father.. to me this is against encapsulation, inheritance and general OOP ( the father potentially throw and exception that will never happen ) Use a RuntimeException instead? This solution wont propagate the Exception to the father but I read In Oracle docs and others sources states class of exceptions should be used when "Client code cannot do anything" this is not that case, this exception will b useful to recover blablabla ( why is wrong to use RuntimeException instead? ) Other.. thanks, Federico

    Read the article

  • Parsing csv line to Java objects

    - by Noobling
    I was wondering if someone here could help me, I can't find a solution for my problem and I have tried everything. What I am trying to do is read and parse lines in a csv file into java objects and I have succeeded in doing that but after it reads all the lines it should insert the lines into the database but it only inserts the 1st line the entire time and I don't no why. When I do a print it shows that it is reading all the lines and placing them in the objects but as soon as I do the insert it wants to insert only the 1st line. Please see my code below: public boolean lineReader(File file){ BufferedReader br = null; String line= ""; String splitBy = ","; storeList = new ArrayList<StoreFile>(); try { br = new BufferedReader(new FileReader(file)); while((line = br.readLine())!=null){ line = line.replace('|', ','); //split on pipe ( | ) String[] array = line.split(splitBy, 14); //Add values from csv to store object //Add values from csv to storeF objects StoreFile StoreF = new StoreFile(); if (array[0].equals("H") || array[0].equals("T")) { return false; } else { StoreF.setRetailID(array[1].replaceAll("/", "")); StoreF.setChain(array[2].replaceAll("/","")); StoreF.setStoreID(array[3].replaceAll("/", "")); StoreF.setStoreName(array[4].replaceAll("/", "")); StoreF.setAddress1(array[5].replaceAll("/", "")); StoreF.setAddress2(array[6].replaceAll("/", "")); StoreF.setAddress3(array[7].replaceAll("/", "")); StoreF.setProvince(array[8].replaceAll("/", "")); StoreF.setAddress4(array[9].replaceAll("/", "")); StoreF.setCountry(array[10].replaceAll("/", "")); StoreF.setCurrency(array[11].replaceAll("/", "")); StoreF.setAddress5(array[12].replaceAll("/", "")); StoreF.setTelNo(array[13].replaceAll("/", "")); //Add stores to list storeList.add(StoreF); } } //print list stores in file printStoreList(storeList); executeStoredPro(storeList); } catch (Exception ex) { nmtbatchservice.NMTBatchService2.LOG.error("An exception accoured: " + ex.getMessage(), ex); //copy to error folder //email } return false; } public void printStoreList(List<StoreFile> storeListToPrint) { for(int i = 0; i <storeListToPrint.size();i++){ System.out.println( storeListToPrint.get(i).getRetailID() + storeListToPrint.get(i).getChain() + storeListToPrint.get(i).getStoreID() + storeListToPrint.get(i).getStoreName() + storeListToPrint.get(i).getAddress1() + storeListToPrint.get(i).getAddress2() + storeListToPrint.get(i).getAddress3() + storeListToPrint.get(i).getProvince() + storeListToPrint.get(i).getAddress4() + storeListToPrint.get(i).getCountry() + storeListToPrint.get(i).getCurrency() + storeListToPrint.get(i).getAddress5() + storeListToPrint.get(i).getTelNo()); } } public void unzip(String source, String destination) { try { ZipFile zipFile = new ZipFile(source); zipFile.extractAll(destination); deleteStoreFile(source); } catch (ZipException ex) { nmtbatchservice.NMTBatchService2.LOG.error("Error unzipping file : " + ex.getMessage(), ex); } } public void deleteStoreFile(String directory) { try { File file = new File(directory); file.delete(); } catch (Exception ex) { nmtbatchservice.NMTBatchService2.LOG.error("An exception accoured when trying to delete file " + directory + " : " + ex.getMessage(), ex); } } public void executeStoredPro(List<StoreFile> storeListToInsert) { Connection con = null; CallableStatement st = null; try { String connectionURL = MSSQLConnectionURL; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); con = DriverManager.getConnection(connectionURL, MSSQLUsername, MSSQLPassword); for(int i = 0; i <storeListToInsert.size();i++){ st = con.prepareCall( "IF EXISTS (SELECT * FROM tblPay@RetailStores WHERE StoreID = " + storeListToInsert.get(i).getStoreID() + " AND RetailID = "+ storeListToInsert.get(i).getRetailID() + ")" + " UPDATE tblPay@RetailStores " + " SET RetailID = '" + storeListToInsert.get(i).getRetailID() + "'," + " StoreID = '" + storeListToInsert.get(i).getStoreID() + "'," + " StoreName = '" + storeListToInsert.get(i).getStoreName() + "'," + " TestStore = 0," + " Address1 = '" + storeListToInsert.get(i).getAddress1() + "'," + " Address2 = '" + storeListToInsert.get(i).getAddress2() + "'," + " Address3 = '" + storeListToInsert.get(i).getAddress3() + "'," + " Address4 = '" + storeListToInsert.get(i).getAddress4() + "'," + " Address5 = '" + storeListToInsert.get(i).getAddress5() + "'," + " Province = '" + storeListToInsert.get(i).getProvince() + "'," + " TelNo = '" + storeListToInsert.get(i).getTelNo() + "'," + " Enabled = 1" + " ELSE " + " INSERT INTO tblPay@RetailStores ( [RetailID], [StoreID], [StoreName], [TestStore], [Address1], [Address2], [Address3], [Address4], [Address5], [Province], [TelNo] , [Enabled] ) " + " VALUES " + "('" + storeListToInsert.get(i).getRetailID() + "'," + "'" + storeListToInsert.get(i).getStoreID() + "'," + "'" + storeListToInsert.get(i).getStoreName() + "'," + "0," + "'" + storeListToInsert.get(i).getAddress1() + "'," + "'" + storeListToInsert.get(i).getAddress2() + "'," + "'" + storeListToInsert.get(i).getAddress3() + "'," + "'" + storeListToInsert.get(i).getAddress4() + "'," + "'" + storeListToInsert.get(i).getAddress5() + "'," + "'" + storeListToInsert.get(i).getProvince() + "'," + "'" + storeListToInsert.get(i).getTelNo() + "'," + "1)"); st.executeUpdate(); } con.close(); } catch (Exception ex) { nmtbatchservice.NMTBatchService2.LOG.error("Error executing Stored proc with error : " + ex.getMessage(), ex); nmtbatchservice.NMTBatchService2.mailingQueue.addToQueue(new Mail("[email protected]", "Service Email Error", "An error occurred during Store Import failed with error : " + ex.getMessage())); } } Any advise would be appreciated. Thanks

    Read the article

  • crashing on iPhone Address API

    - by phil swenson
    Any ideas on why this code would crash (crash location indicated below)? email is a valid NSString*... ([email protected]) +(void)newContactFromEmail:(DetailViewController*)controller email:(NSString*)emailAddress{ ABNewPersonViewController *npvc = [[ABNewPersonViewController alloc] init]; ABRecordRef newPerson = ABPersonCreate(); [self updateEmail:newPerson email:emailAddress]; npvc.displayedPerson = newPerson; npvc.newPersonViewDelegate = controller; [controller.navigationController pushViewController:npvc animated:YES]; } +(void)updateEmail:(ABRecordRef)person email:(NSString*)email{ **crashes Here**---->> ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutableCopy (ABRecordCopyValue(person, kABPersonEmailProperty)); ABMultiValueAddValueAndLabel(multiEmail, email, kABHomeLabel, NULL); ABRecordSetValue(person, kABPersonEmailProperty, multiEmail, nil); CFRelease(multiEmail); }

    Read the article

  • Checking for 2 exepcted values in Junit

    - by Swift-Tuttle
    Hi, I have a java program which throws an exception with 2 different messages for 2 different scenarios and I want the Junit test case to check for equality for both of these messages. As an example - public void amethod() { // do some processing if(scenario1 == true) { throw new MySystemException("An error occured due to case 1 being incorrect."); } else if(scenario2 == true) { throw new MySystemException("An error occured as case 2 could not be found"); } } Now the JUnit for this would be something like- public void testAMethod() { // do something assertEquals("Expected", "Actual"); } As I understand, in this above example, if I use the Scenario1 exception message the junit will fail when an exception is thrown for Scenario2 and vice versa. I would like to know if there is any other way provided in Junit by which I can use this one test method and check for both the messages for the test to pass? Something like an OR, if possible to provide the "Expected" value with both these expected message. I hope my query is clear enough. Thanks

    Read the article

  • Creating and releasing objects in the same method, while using self as delegate

    - by user200341
    In objective-c you are responsible for releasing objects you allocate, but what happens when you allocate an object in a method, assign self as the objects delegate, and then release the object. The callbacks from the newly created (and released) object fails at this point, or rather, doesn't happen. - (void)doSomething { MyObj *myObj = [[MyObj alloc] init]; myObj.delegate = self; [myObj performOperation]; [myObj release]; } - (void)callbackMethodFromMyObj:(NSString *)message { NSLog(message); } I can't release the object until the callback has occurred, and I can't avoid releasing the object in the same method that creates it (because it exists outside the scope). One way of doing it would be to pass the object along in the call-back and release it in the callback, but is this the right way to go about this?

    Read the article

  • Thread feeding other MultiThreading

    - by alaamh
    I see it's easy to open pipe between two process using fork, but how we can passing open pipe to threads. Assume we need to pass out of PROGRAM A to PROGRAM B "may by more than one thread", PROGRAM B send his output to PROGRAM C #include <stdio.h> #include <stdlib.h> #include <pthread.h> struct targ_s { char* reader; }; void *thread1(void *arg) { struct targ_s *targ = (struct targ_s*) arg; int status, fd[2]; pid_t pid; pipe(fd); pid = fork(); if (pid == 0) { int fd = fileno( targ->fd_reader ); dup2(STDIN_FILENO, fd); close(fd[0]); dup2(fd[1], STDOUT_FILENO); close(fd[1]); execvp ("PROGRAM B", NULL); exit(1); } else { close(fd[1]); dup2(fd[0], STDIN_FILENO); close(fd[0]); execl("PROGRAM C", NULL); wait(&status); return NULL; } } int main(void) { FILE *fpipe; char *command = "PROGRAM A"; char buffer[1024]; if (!(fpipe = (FILE*) popen(command, "r"))) { perror("Problems with pipe"); exit(1); } char* outfile = "out.dat"; FILE* f = fopen (outfile, "wb"); int fd = fileno( f ); struct targ_s targ; targ.fd_reader = outfile; pthread_t thid; if (pthread_create(&thid, NULL, thread1, &targ) != 0) { perror("pthread_create() error"); exit(1); } int len; while (read(fpipe, buffer, sizeof (buffer)) != 0) { len = strlen(buffer); write(fd, buffer, len); } pclose(fpipe); return (0); }

    Read the article

  • Access outer class from inner class: Why is it done this way?

    - by Vuntic
    So most of us know how to access an outer class from an inner class. Searches with those words give oodles of answered questions on that topic. But what I want to know is why the syntax is the way it is. Example: public class A { private class B { public void c() {A.this.d();} } public void d() {System.out.println("You've called d()! Go, you!");} } Why is it A.this.d()? It looks like this is a static field of class A, but... * am confused * Forgive me if this is a repeat; like I said, searches with those words give how-answers.

    Read the article

  • C++: Avoid .cpp files with only an empty (de)constructor

    - by Martijn Courteaux
    Hi, When I have a header file like this: #ifndef GAMEVIEW_H_ #define GAMEVIEW_H_ #include <SDL/SDL.h> class GameView { public: GameView(); virtual ~GameView(); virtual void Update() = 0; virtual void Render(SDL_Surface* buffer) = 0; }; #endif /* GAMEVIEW_H_ */ I need to create a .cpp file like this: #include "GameView.h" GameView::~GameView() { } GameView::GameView() { } This is a bit stupid. Just a .cpp file for an empty constructor and deconstructor. I want to implement that method simply in the header file. That is much cleaner. How to do this?

    Read the article

  • Changing background color in Android SDK by clicking a button does not work

    - by DavidNg
    I have a simple program which is able to change the background color after clicking a button, but it does not work public class ChangeBackgroundActivity extends Activity { /** Called when the activity is first created. */ Button blueButton; LinearLayout myLO; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myLO=(LinearLayout)findViewById(R.layout.main); blueButton=(Button)findViewById(R.id.button1); blueButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub myLO.setBackgroundColor(0x0000FF); //blue color code #0000FF } }); } }

    Read the article

  • How do you detach an array of strings from shared memory? C

    - by Tim
    I have: int array_id; char* records[10]; // get the shared segment if ((array_id = shmget(IPC_PRIVATE, 1, 0666)) == -1) { perror("Array Creating"); } // attach records[0] = (char*) shmat(array_id, (void*)0, 0); if ((int) *records == -1) { perror("Array Attachment"); } which works fine, but when i try and detach i get an "invalid argument" error. // detach int error; if( (error = shmdt((void*) records[0])) == -1) { perror(array detachment); } any ideas? thank you

    Read the article

  • How to remove statusbar from messageviewcontroller?

    - by hckr
    I am sending sms programmatically from my view controller but now it is showing me statusbar and vertical black line my code: - (IBAction)SendTextBtnTapped:(id)sender { [self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects: nil]]; } - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients { MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; if([MFMessageComposeViewController canSendText]) { controller.body = bodyOfMessage; controller.recipients = recipients; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } } - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { [self dismissModalViewControllerAnimated:YES]; if (result == MessageComposeResultCancelled) NSLog(@"Message cancelled"); else if (result == MessageComposeResultSent) NSLog(@"Message sent"); else NSLog(@"Message failed"); } and my screen look like this:

    Read the article

  • not working function with no errors

    - by aya
    hello.. I've implemented a function to display an avl tree after inserting nodes into it like this template void AVLtree::display() const { display(Proot); } template void AVLtree::display(Node * ptr) const { if(ptr==0) return ; cout<value<<" "; display(ptr-Pleft); display(ptr-Pright); } after compiling,there were no errors ,the program worked but nothing were printed on the screen help me please....!! thanks

    Read the article

  • Is there anything wrong with my texture loading method ?

    - by José Joel.
    I'm a noob in openGL and trying to learn as much as possible. I'm using this method to load my openGL textures, loading every .png as RGBA4444. I'm doing anything incorrect ? - (void)loadTexture:(NSString*)nombre { CGImageRef textureImage =[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:nombre ofType:nil]].CGImage; if (textureImage == nil) { NSLog(@"Failed to load texture image"); return; } textureWidth = NextPowerOfTwo(CGImageGetWidth(textureImage)); textureHeight = NextPowerOfTwo(CGImageGetHeight(textureImage)); imageSizeX= CGImageGetWidth(textureImage); imageSizeY= CGImageGetHeight(textureImage); GLubyte *textureData = (GLubyte *)calloc(1,textureWidth * textureHeight * 4); // Por 4 pues cada pixel necesita 4 bytes, RGBA CGContextRef textureContext = CGBitmapContextCreate(textureData, textureWidth,textureHeight,8, textureWidth * 4,CGImageGetColorSpace(textureImage),kCGImageAlphaPremultipliedLast ); CGContextDrawImage(textureContext, CGRectMake(0.0, 0.0, (float)textureWidth, (float)textureHeight), textureImage); //Convert "RRRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA" to "RRRRGGGGBBBBAAAA" void *tempData = malloc(textureWidth * textureHeight * 2); unsigned int* inPixel32 = (unsigned int*)textureData; unsigned short* outPixel16 = (unsigned short*)tempData; for(int i = 0; i < textureWidth * textureHeight ; ++i, ++inPixel32) *outPixel16++ = ((((*inPixel32 >> 0) & 0xFF) >> 4) << 12) | // R ((((*inPixel32 >> 8) & 0xFF) >> 4) << 8) | // G ((((*inPixel32 >> 16) & 0xFF) >> 4) << 4) | // B ((((*inPixel32 >> 24) & 0xFF) >> 4) << 0); // A free(textureData); textureData = tempData; CGContextRelease(textureContext); glGenTextures(1, &textures[0]); glBindTexture(GL_TEXTURE_2D, textures[0]); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureWidth, textureHeight, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4 , textureData); free(textureData); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } And this is my dealloc method: - (void)dealloc { glDeleteTextures(1,textures); [super dealloc]; }

    Read the article

  • Logical value of an assignment in C

    - by Andy Shulman
    while (curr_data[1] != (unsigned int)NULL && ((curr_ptr = (void*)curr_data[1]) || 1)) Two part question. What will (curr_ptr = (void*)curr_data[1]) evaluate to, logically. TRUE? Also, I know its rather hack-ish, but is the while statement legal C? I would have to go through great contortions to put the assignment elsewhere in the code, so I'd be really nice if I could leave it there, but if it's so egregious that it makes everyone's eyeballs burst into flames, I'll change it.

    Read the article

  • DBConcurrencyException happening on second delete

    - by Malfist
    My code keeps throwing a DBConcurrencyException ("Concurrency violation: the DeleteCommand affected 0 of the expected 1 records.) when I make a second update to the data table. The problem actually happens on a table that is linked to a parent table. The two tables, CashReceipts and CashReceiptsApplyTo are displayed on the same winform, and when I delete two cash receipts the update on cash receipt apply to's table fails with the dbconcurrencyexception (the table is updated everytime the binding source [linked to a binding navigator] changes position). Here is my code: protected override void saveToDatabase() { tblCashReceiptsBindingSource.EndEdit(); tblCashReceiptsTableAdapter.Update(rentalEaseDataSet.tblCashReceipts); //update the datatable foreach (DataGridViewRow viewRow in viewApplications.Rows) { if (viewRow.Cells[colAppID.Index].Value == null || viewRow.Cells[colApplyTo.Index].Value == null) { continue; } else if ((int)viewRow.Cells[colAppID.Index].Value == -1) { insertNewRow(viewRow); } else { updateRow(viewRow); } } try { tblCashReceiptsApplyToTableAdapter.Update(rentalEaseDataSet.tblCashReceiptsApplyTo); //tblCashReceiptsApplyToTableAdapter.Fill(rentalEaseDataSet.tblCashReceiptsApplyTo); ); } catch (Exception e) { Bitmap bitmap = new Bitmap(this.Width, this.Height); this.DrawToBitmap(bitmap, new Rectangle(0, 0, this.Width, this.Height)); saveScreenshot(this.GetType().FullName, e.Message, bitmap); MessageBox.Show("There was an error saving your changes. This means that you should close the form, and re-enter the last Receipt you entered.\n\nPlease report this."); } } The insertNewRow, and updateRow are simple: private void updateRow(DataGridViewRow viewRow) { //be forgiving if ((int)viewRow.Cells[colAppID.Index].Value == -1) { insertNewRow(viewRow); return; } //find row in table, if it's not there, crash and burn RentalEaseDataSet.tblCashReceiptsApplyToRow updateRow = rentalEaseDataSet.tblCashReceiptsApplyTo.Select("ID = " + viewRow.Cells[colAppID.Index].Value.ToString())[0] as RentalEaseDataSet.tblCashReceiptsApplyToRow; updateRow.BeginEdit(); updateRow.CashReceiptsID = (int)viewRow.Cells[colCashReceipt.Index].Value; updateRow.ApplyTo = (int)viewRow.Cells[colApplyTo.Index].Value; updateRow.Paid = CurrencyToDecimal(viewRow.Cells[colPaid.Index].Value); if (viewRow.Cells[colMemo.Index].Value != null) { updateRow.Memo = viewRow.Cells[colMemo.Index].Value.ToString(); } else { updateRow.SetMemoNull(); } updateRow.EndEdit(); } private void insertNewRow(DataGridViewRow viewRow) { //be forgiving if ((int)viewRow.Cells[colAppID.Index].Value != -1) { updateRow(viewRow); return; } RentalEaseDataSet.tblCashReceiptsApplyToRow newRow = rentalEaseDataSet.tblCashReceiptsApplyTo.NewRow() as RentalEaseDataSet.tblCashReceiptsApplyToRow; newRow.CashReceiptsID = (int) viewRow.Cells[colCashReceipt.Index].Value; newRow.ApplyTo = (int) viewRow.Cells[colApplyTo.Index].Value; newRow.Paid = CurrencyToDecimal(viewRow.Cells[colPaid.Index].Value); if (viewRow.Cells[colMemo.Index].Value != null) { newRow.Memo = viewRow.Cells[colMemo.Index].Value.ToString(); } rentalEaseDataSet.tblCashReceiptsApplyTo.Rows.Add(newRow); //update the ID viewRow.Cells[colAppID.Index].Value = newRow.ID; } Any idea why it would throw that error on the second delete?

    Read the article

  • Action T synchronous and asynchronous

    - by raffaeu
    Hi everybody I have a contextmenustrip control that allows you to execute an action is two different flawours. Sync and Async. I am trying to covert everything using Generics so I did this: public class BaseContextMenu<T> : IContextMenu { private T executor ... public void Exec(Action<T> action){ action.Invoke(this.executor); } public void ExecAsync(Action<T> asyncAction){ ... } How I can write the async method in order to execute the generic action and 'do something' with the menu in the meanwhile? I saw that the signature of BeginInvoke is something like: asyncAction.BeginInvoke(thi.executor, IAsyncCallback, object);

    Read the article

  • Size of an image imported with FreeImage

    - by KaiserJohaan
    I'm having abit of a brainfart and I can't quite grasp what I'm doing wrong. It's quite simple, I am importing an image with FreeImage (http://freeimage.sourceforge.net/) which has a method FreeImage_GetBits that returns a pointer to the first byte of the image data. I then try to load all the data into memory using (bitsperpixel / 8) * pixelsWidth ' pixelHeight, like this: uint32_t bitsPerPixel = FreeImage_GetBPP(bitmap); // resolves to 24 uint32_t widthInPixels = FreeImage_GetWidth(bitmap); // resolves to 1024 uint32_t heightInPixels = FreeImage_GetHeight(bitmap); // resolves to 1024 // container is a std::vector<uint8_t> pkgMaterial.mTextureData.insert(pkgMaterial.mTextureData.begin(), FreeImage_GetBits(bitmap), FreeImage_GetBits(bitmap) + ((bitsPerPixel/8) * widthInPixels * heightInPixels)); I have a jpg which is 31 kilobytes in size on disc. Yet when I load it using the above formula, I see the vector is then filled with 3145728 bytes, which is approx 3145 kilobytes. What am I doing wrong?

    Read the article

  • Messing with the stack in assembly and c++

    - by user246100
    I want to do the following: I have a function that is not mine (it really doesn't matter here but just to say that I don't have control over it) and that I want to patch so that it calls a function of mine, preserving the arguments list (jumping is not an option). What I'm trying to do is, to put the stack pointer as it was before that function is called and then call mine (like going back and do again the same thing but with a different function). This doesn't work straight because the stack becomes messed up. I believe that when I do the call it replaces the return address. So, I did a step to preserve the return address saving it in a globally variable and it works but this is not ok because I want it to resist to recursitivy and you know what I mean. Anyway, i'm a newbie in assembly so that's why I'm here. Please, don't tell me about already made software to do this because I want to make things my way. Of course, this code has to be compiler and optimization independent. My code (If it is bigger than what is acceptable please tell me how to post it): // A function that is not mine but to which I have access and want to patch so that it calls a function of mine with its original arguments void real(int a,int b,int c,int d) { } // A function that I want to be called, receiving the original arguments void receiver(int a,int b,int c,int d) { printf("Arguments %d %d %d %d\n",a,b,c,d); } long helper; // A patch to apply in the "real" function and on which I will call "receiver" with the same arguments that "real" received. __declspec( naked ) void patch() { _asm { // This first two instructions save the return address in a global variable // If I don't save and restore, the program won't work correctly. // I want to do this without having to use a global variable mov eax, [ebp+4] mov helper,eax push ebp mov ebp, esp // Make that the stack becomes as it were before the real function was called add esp, 8 // Calls our receiver call receiver mov esp, ebp pop ebp // Restores the return address previously saved mov eax, helper mov [ebp+4],eax ret } } int _tmain(int argc, _TCHAR* argv[]) { FlushInstructionCache(GetCurrentProcess(),&real,5); DWORD oldProtection; VirtualProtect(&real,5,PAGE_EXECUTE_READWRITE,&oldProtection); // Patching the real function to go to my patch ((unsigned char*)real)[0] = 0xE9; *((long*)((long)(real) + sizeof(unsigned char))) = (char*)patch - (char*)real - 5; // calling real function (I'm just calling it with inline assembly because otherwise it seems to works as if it were un patched // that is strange but irrelevant for this _asm { push 666 push 1337 push 69 push 100 call real add esp, 16 } return 0; }

    Read the article

  • Custom Control Events in C#

    - by pm_2
    I'm trying to create a custom control and need to raise an event from it. The idea is to raise an event at the end of the click event (OnAfterClick). I found one or two tutorials on doing this, but am clearly missing a step somewhere; I have the following. In the control: public class AfterClickEventArgs : EventArgs { ... } public partial class MyButton : CommandButton { public delegate void AfterClickEvnt(object sender, AfterClickEventArgs e); public event AfterClickUpdatedEvnt AfterClick; } protected override void OnClick(EventArgs e) { ... Processing here ... AfterClickEventArgs myArgs = new AfterClickEventArgs(); AfterClick(this, newArgs); } In the program using the control: In InitializeComponent(): this.MyButton.AfterClick += new System.EventHandler(this.cmdMyButton_Click); This line is giving me a compile error (cmdMyButton_Click does exist). It tells me: Cannot implicitly convert type 'System.EventHandler' to 'Namespace.MyButton.AfterClick' Can anyone tell me what I'm missing, or misunderstanding about this, please?

    Read the article

  • Iterator in Java.

    - by theband
    What is Iterator and collections? Does these two have any relations? // the interface definition Interface Iterator { boolean hasNext(); Object next(); // note "one-way" traffic void remove(); } // an example public static void main (String[] args){ ArrayList cars = new ArrayList(); for (int i = 0; i < 12; i++) cars.add (new Car()); Iterator it = cats.iterator(); while (it.hasNext()) System.out.println ((Car)it.next()); } Does the Interface Iterator has these method names alone predefined or its user defined?. What does these four lines below actually tell? cars.add (new Car()); Iterator it = cats.iterator(); while (it.hasNext()) System.out.println ((Car)it.next()); Thanks i am going through a book in collections.

    Read the article

  • Dropdown binding and postbacks - ASP.NET

    - by DotnetDude
    I have a rather complex page. The ASPX page loads a user control which in turn loads a child User control. Parent Control protected override void OnInit(EventArgs e) { //Loads child control } In the child user control, I use custom control that inherits from System.Web.UI.HtmlControls.HtmlSelect ASCX: <cust:CustDropDownList id="ctlDdl" runat="server"/> ASCX.CS protected void Page_Load(object sender, EventArgs e) { //Binds CtlDdl here } When the user clicks on the Save button, the controls get user controls get dynamically reloaded, but Iose the value the user has selected in the dropdown. I run into the chicken and egg problem here. I think I need to bind the ctlDdl only on if its not a postback, but that results in the dropdown not getting populated. If I bind it everytime, then i lose user's selection EDIT: Can someone respond to my comment to Jonathan's answer? Thanks

    Read the article

  • How can I add similar functionality to a number of methods in java?

    - by Roman
    I have a lot of methods for logging, like logSomeAction, logAnotherAction etc. Now I want all these methods make a small pause after printing messages (Thread.sleep). If I do it manually, I would do something like this: //before: public static void logSomeAction () { System.out.println (msg(SOME_ACTION)); } //after: public static void logSomeAction () { System.out.println (msg(SOME_ACTION)); try { Thread.sleep (2000); } catch (InterruptedException ignored) { } } I remember that Java has proxy classes and some other magic-making tools. Is there any way avoid copy-n-pasting N sleep-blocks to N logging methods?

    Read the article

  • Does C++ have a proper implementation of interface that does not use vtable?

    - by gilbertc
    Does C++ have a proper implementation of interface that does not use vtable? for example class BaseInterface{ public: virtual void func() const = 0; } class BaseInterfaceImpl:public BaseInterface{ public: void func(){ std::cout<<"called."<<endl; } } BaseInterface* obj = new BaseInterfaceImpl(); obj->func(); the call to func at the last line goes to vtable to find the func ptr of BaseInterfaceImpl::func, but is there any C++ way to do that directly as the BaseInterfaceImpl is not subclassed from any other class besides the pure interface class BaseInterface? Thanks. Gil.

    Read the article

  • Query on the scope of local variables in C

    - by darkie15
    All, Consider the following code: void func(void) { int a; printf ("%d", a); } int main(int argc, char **argv) { int a = 3; func(); printf("%d", a); } According to my understanding, the output should be: <junk value><3> Can anyone please confirm my understanding? My basic query is, does the compiler refer to the outer scope for a variable that has been declared but not defined? Regards, darkie

    Read the article

< Previous Page | 306 307 308 309 310 311 312 313 314 315 316 317  | Next Page >